Python matplotlib:对齐双y轴
建议我使用Python matplotlib:对齐双y轴,python,matplotlib,Python,Matplotlib,建议我使用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 = a
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])
我猜它会按照您的预期工作。请显示其余代码(如有必要,请省略绘图命令)。很明显,您操作的轴超过了所示的5行。@PaulH我已按要求输入了其余的相关matplot库代码。问题是只适用于当前轴的
plt.ylim
行,因此,它们没有对齐,因为您指示库使它们没有对齐。@所以我应该设置轴以手动设置限制?我该怎么做?对不起,这比我想的要简单。你应该为你自己的问题写一个答案,这样你的工作就可以获得互联网积分。