2017-07-15 95 views
3

這應該是很容易複製:plt.eventplot拒絕lineoffsets

plt.eventplot(positions=[1, 2, 3], lineoffsets=[1, 2, 3]) 

提高

ValueError: lineoffsets and positions are unequal sized sequences 

至於原因,我想不通,因爲他們顯然不是。

+0

你使用matplotliv 2.0或以上? – Bodhi94

回答

2

如果我理解正確,你想繪製3條線,在不同的起始高度(偏移)。這一點也適用plt.eventplot的方法如下:

import numpy as np 
import matplotlib.pyplot as plt 

positions = np.array([1, 2, 3])[:,np.newaxis] # or np.array([[1], [2], [3]]) 
offsets = [1,2,3] 

plt.eventplot(positions, lineoffsets=offsets) 
plt.show() 

你必須設置要繪製每一組數據的偏移量。在你的情況下,你必須將列表分成一個3D數組(形狀爲(m,n),數據集數量爲m,每組數據點數爲n)。這樣plt.eventplot知道它必須爲每組數據使用不同的偏移量。另請參閱this示例。

+3

只需要提一下:將列表重塑爲一個轉置數組可以像'positions = np.array([1,2,3])[:,np.newaxis]一樣完成'(這不需要事先知道大小)。 – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest偉大的補充,編輯。 –