簡體   English   中英

matplotlib:對齊雙Y軸

[英]matplotlib: Aligning twin y-axes

該問題的答案表明,我將使用set_ylim / get_ylim來對齊兩個雙軸。 但是,這似乎對我沒有作用。

程式碼片段:

fig, ax1 = plt.subplots()

yLim = [minY, maxY]
xLim = [0, 0.01]

for x in analysisNumbers:
    ax1.plot(getData(x), vCoords, **getStyle(x))

ax1.set_yticks(vCoords)
ax1.grid(True, which='major')


ax2 = ax1.twinx()
ax2.set_yticks(ax1.get_yticks())
ax2.set_ylim(ax1.get_ylim())
ax2.set_ylim(ax1.get_ylim())

plt.xlim(xLim[0], xLim[1])
plt.ylim(yLim[0], yLim[1])

plt.minorticks_on()

plt.show()

圖形輸出(在新窗口中打開圖像):

在此處輸入圖片說明

雙軸應相同,但不相同。 它們的標簽相同,但對齊方式不同(請參見零不對齊)。 怎么了?

正如tcaswell在評論中指出的那樣, plt.ylim()僅影響其中一個軸。 如果您替換這些行:

ax2.set_ylim(ax1.get_ylim())
ax2.set_ylim(ax1.get_ylim())

plt.xlim(xLim[0], xLim[1])
plt.ylim(yLim[0], yLim[1])

有了這個:

ax1.set_ylim(yLim[0], yLim[1])
ax2.set_ylim(ax1.get_ylim())

plt.xlim(xLim[0], xLim[1])

它會按我想的那樣工作。

暫無
暫無

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

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