The answer to this question建议我使用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()
图形输出(在新窗口中打开图像):
双轴应该是相同的,但它们不是。它们的标签是相同的,但它们的对齐方式不一致(参见零点不对齐)。怎么了?
答案 0 :(得分:0)
正如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])
我会猜测你的意图。