Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib:对齐双y轴_Python_Matplotlib - Fatal编程技术网

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
行,因此,它们没有对齐,因为您指示库使它们没有对齐。@所以我应该设置轴以手动设置限制?我该怎么做?对不起,这比我想的要简单。你应该为你自己的问题写一个答案,这样你的工作就可以获得互联网积分。