我在Python中的matplotlib中有2个子图。它们堆叠在一起。
我想在每个情节都有网格线,我已经成功完成了。但是每个绘图都有不同的x轴,因此,顶部绘图的垂直网格线与底部绘图的垂直网格线不对齐。
我希望顶部绘图的网格线在x轴上与底部绘图处于相同的位置,即两个绘图中的垂直网格线应该对齐。
我成像,我可以告诉我的网格线确切的位置,所以我可以通过调整线条直到它们尽可能匹配来实现我的目标。
我只是希望有一些更简单的方法可以让我在两个图上对齐网格线。
编辑:
我认为shared axis的东西不是我想要的。
我的顶部和底部绘图具有非常不同的比例,因此当我共享轴时,它也会移动缩放。例如,假设我的顶部图表的数据在x轴上从0到100,在底部图表上的数据从0到50。当我共享轴时,顶部的图只显示0-50的数据,我不想这样做。
我希望它像以前一样从0到100显示,但只是想让它与其他情节共享轴和网格线。
答案 0 :(得分:1)
您可以使用LinearLocator
:
from matplotlib.ticker import LinearLocator
然后在每个x轴上或仅在其中一个x轴上调用:
N = 6 # Set number of gridlines you want to have in each graph
ax1.xaxis.set_major_locator(LinearLocator(N))
ax2.xaxis.set_major_locator(LinearLocator(N))
或者从源轴获取刻度数并将其设置在目标轴上:
N = source_ax.xaxis.get_major_ticks()
target_ax.xaxis.set_major_locator(LinearLocator(N))