我想创建一个包含主要和次要刻度线以及主要和次要网格线的图。我希望网格线是等距的,但是在下面的代码中,网格线不是等距的。我该如何解决?

mnt = MonthLocator(range(1, 13), bymonthday=1, interval=2)
mnt_fmt = DateFormatter("%b '%y")
ax.xaxis.set_major_locator(mnt)
ax.xaxis.set_major_formatter(mnt_fmt)
ax.xaxis.set_minor_locator(MaxNLocator(20))
ax.yaxis.set_major_locator(MaxNLocator(5))
ax.yaxis.set_minor_locator(MaxNLocator(20))
# Create nice-looking grid for ease of visualization
ax.grid(which='minor', alpha=0.2)
ax.grid(which='major', alpha=0.5)


编辑
python - matplotlib图中的等距网格线-LMLPHP

最佳答案

您在x轴上看到的实际上是标记每个月的第一天和标记每个“ x”天数之间的差异。

您已将主要报价设置在每个月的第一天。但是,您已将次刻度线设置为每5天定位一次。

由于每个月的第一天的间隔不是均匀的,因此主要刻度线不会间隔均匀。但是,较小的滴答声将始终相隔5天。因此,您将在x轴上看到主要刻度线和次要刻度线的相对间距的变化。

最后,您必须决定自己想要哪一个:每月的第一天Ti,或定期打tick。不幸的是,您不能同时拥有两者。

关于python - matplotlib图中的等距网格线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34972132/

10-12 22:00