2017-10-14 92 views
0

如何連接每個第10個點?matplotlib繪製在一個循環中

import numpy as np 
import matplotlib.pyplot as plt 

if __name__ == '__main__': 
    #points = np.fromfile('test_acc_history.txt') 
    points = np.array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0]) 
    plt.figure(100) 
    plt.plot(points) 

    plt.show() 

中的輸出結果:

enter image description here

,但我想有一個結果應該看起來像一個曲線:

enter image description here

+1

你的第二個代碼甚至無法有效的Python。請創建問題的[mcve]。還要更清楚地解釋輸出有什麼問題。什麼*是*藍色數據和紅色數據,你爲什麼期望他們是平等的? – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest現在應該是 – j35t3r

+1

不,它不是。如果您遇到問題,您需要爲其他人重現。如果[mcve]對你無法理解,也許[SSCCE](http://sscce.org)會有所幫助。 – ImportanceOfBeingErnest

回答

1

爲了繪製每n您可以切片數組,points[::n]。爲了確保將它們繪製在正確的位置,還需要提供x值的列表,這些值是整數範圍內的每個點。

import numpy as np 
import matplotlib.pyplot as plt 

points = np.array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.7, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0]) 

plt.plot(points) 
plt.plot(range(len(points))[::10],points[::10]) 

plt.show() 

enter image description here