[英]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.