簡體   English   中英

共享 X 軸時,MatPlotLib 不顯示兩個圖形

[英]MatPlotLib not displaying both graphs when sharing X axes

這是我遇到的一個奇怪的問題。 我正在嘗試從 Python 中的 CSV 文件讀取數據,並將生成的兩條結果行放在同一個框中,具有不同的比例,因此它們都清晰易讀。

CSV 文件如下所示:

日期、差異、當前

11/19/20, 0, 606771

11/20/20, 14612, 621383

代碼如下所示:

data = pd.read_csv('data.csv')
time = data['Time']
ycurr = data['current']
ydif = data['difference']

fig, ax = plt.subplots()
line1, = ax.plot(time, ycurr, label='Current total')
line1.set_dashes([2, 2, 10, 2])  # 2pt line, 2pt break, 10pt line, 2pt break

line2, = ax.twinx().plot(time, ydif, dashes=[6, 2], label='Difference')

ax.legend()
plt.show()

我可以用 X 軸顯示日期值和 Y 軸顯示差異值或當前值的圖表就好了。

但是,當我嘗試使用 subplots() 並在第二行中使用 twinx() 屬性時,我只能看到兩行之一。 MatPlotLib Graph 結果僅顯示當前總數。

我最初認為這可能是我的代碼中的格式問題,所以我更新了代碼,將第二行設置ax2 = ax1.twin(x)並使用它調用第二行,但結果保持不變。 我懷疑這可能是讀取 CSV 數據的問題? 我嘗試在x = np.linspace(0, 10, 500) y = np.sin(x) y2 = np.sin(x-0.05) ,並且有效: MPL 在這里完美地工作

一切都按預期工作,但可能不是您希望的工作方式! 所以每條線只包含兩個數據點,最終會給你一條線性曲線。 這兩條曲線共享相同的 x 坐標,而每個圖的 y 軸都按比例縮放。 問題來了,兩個軸都被縮放以以相同的方式顯示數據。 這意味着,曲線完美地位於彼此之上。 很難看到,因為兩條線都是虛線。
您可以通過更改線條的顏色來查看發生了什么。 例如,將color='C1'添加到其中一條曲線。
順便說一下,你想用你的情節表現什么? 由兩個數據點組成的曲線通常不會顯示太多,如果您直接顯示它們的值會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM