python - 不可见的主要网格线隐藏可见的次要网格线

标签 python matplotlib

我正在尝试根据日期绘制一些数据,但遇到了有关网格的问题。我想要在 x 轴上显示日期,月份的主要刻度和周的次要刻度。但是对于网格,我只想看到次要的。在构建绘图时,我注意到 11 月的网格缺失了一部分:

enter image description here

这是重现上述问题的最小示例。

from datetime import datetime

import matplotlib as mpl
from matplotlib import pyplot as plt
from matplotlib import dates as mdates


fig, ax = plt.subplots()

ax.xaxis.set_minor_locator(mdates.WeekdayLocator(byweekday=mdates.MO))
ax.xaxis.set_major_locator(mdates.MonthLocator())
ax.xaxis.set_major_formatter(
    mdates.ConciseDateFormatter(mdates.AutoDateLocator())
)

ax.set_xlim(datetime(2021, 9, 1), datetime(2022, 1, 1))

ax.xaxis.grid(color="gray", linestyle="dashed", alpha=0.2, which="minor")

plt.show()

我认为这是因为不可见的主线与应该绘制的副线重叠。任何人都可以解释发生了什么以及如何解决这个问题吗?

最佳答案

原因是次要刻度线显示在次要刻度线位置,如果次要刻度线与主要刻度线位置重合,则次要刻度线被抑制。

此行为可以通过 remove_overlapping_locs 控制.

设置

ax.xaxis.remove_overlapping_locs = False

结果

enter image description here

关于python - 不可见的主要网格线隐藏可见的次要网格线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72976310/

相关文章:

javascript - 找到 Python Selenium Webdriver 元素但无法单击它

python - 使用 python ping 并保存到文件

php - 在 PHP、JavaScript 中执行此 Python 3 列表操作的最短方法?

python - 如何在 python 中分组和计算二项式变量?并绘制这个图

python - 为什么我的pyinstaller python程序在双击而不是在cmd运行时崩溃

python - Matplotlib - 颜色作为已标准化数据的第三个变量 - 不是灰度

python - 使用批量梯度下降训练单个线性神经元进行回归

python - Matplotlib:来自 3 列 pandas 数据帧的 pcolormesh 或 pcolor

python - 基于日期的切片 Pandas Dataframe

python - Kivy (Python) - 椭圆点击事件