我有一个带有两个 y 轴的 Matplotlib 图,创建方式如下:
ax1 = fig.add_subplot(111)
ax1.grid(True, color='gray')
ax1.plot(xdata, ydata1, 'b', linewidth=0.5)
ax2 = ax1.twinx()
ax2.plot(xdata, ydata2, 'g', linewidth=0.5)
我需要网格线,但我希望它们应用于两个 y 轴,而不仅仅是左侧轴。每个轴的比例会有所不同。我得到的是仅与左侧轴上的值匹配的网格线。
Matplotlib 可以帮我解决这个问题还是我必须自己解决?
编辑: 别以为我说得很清楚,我希望两个 y 轴上的主要刻度对齐,但比例和范围可能完全不同,因此很难设置分钟和手动最大值来实现这一点。我希望 matplotlib 能够为我做这个“棘手”的事情。谢谢
最佳答案
编辑
考虑这个简单的例子:
from pylab import *
# some random values
xdata = arange(0.0, 2.0, 0.01)
ydata1 = sin(2*pi*xdata)
ydata2 = 5*cos(2*pi*xdata) + randn(len(xdata))
# number of ticks on the y-axis
numSteps = 9;
# plot
figure()
subplot(121)
plot(xdata, ydata1, 'b')
yticks( linspace(ylim()[0],ylim()[1],numSteps) )
grid()
subplot(122)
plot(xdata, ydata2, 'g')
yticks( linspace(ylim()[0],ylim()[1],numSteps) )
grid()
show()
关于python - Matplotlib:多个 y 轴,网格线应用于两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3654619/