python - 如何在 matplotlib 配置文件中定义次要刻度的数量
问题描述
使用一个Locator()
可以控制 matplotlib 轴上的次要或主要刻度的数量。
例如 :
plt.gca().yaxis.set_minor_locator(plt.MultipleLocator(1))
但是上面的行取决于您正在绘制的数据。
我想知道是否有办法从 matplotlib 样式文件(例如matplotlibrc
(https://matplotlib.org/users/customizing.html))更改次要刻度的数量。例如,您可以通过以下方式管理次要刻度样式:
xtick.minor.visible : True
xtick.minor.width : 2
xtick.minor.size : 5
但我不知道如何处理次要刻度的数量。
解决方案
刻度数并不是真正的“样式”属性。因此,您目前别无选择为此使用 rc 文件。
至于默认设置的来源,这是由 决定的AutoMinorLocator
,如果没有给出其他自定义定位器并且打开了次要刻度,则使用它。
matplotlib.ticker.AutoMinorLocator(n=None)
根据主要刻度的位置动态查找次要刻度位置。刻度必须是线性的,主要刻度线间隔均匀。
n
是主要刻度之间间隔的细分数;例如,n=2 将在主要刻度之间放置一个次要刻度。如果
n
省略或无,它将被设置为 5 或 4。
这为以下解决方法留下了空间。您可以使用猴子补丁AutoMinorLocator
来使用与平时不同的默认值。例如,有 23 个次要垃圾箱,
# use these lines on top of your matplotlib script
import matplotlib.ticker
class MyLocator(matplotlib.ticker.AutoMinorLocator):
def __init__(self, n=23):
super().__init__(n=n)
matplotlib.ticker.AutoMinorLocator = MyLocator
# Now use matplotlib as usual.
import matplotlib.pyplot as plt
plt.rcParams["xtick.minor.visible"] = True
plt.plot([1,2])
plt.show()
推荐阅读
- angular - 如何在 Fuse Angular 日历中使用自定义模板?
- python - 如何使用 Python 检测图形的转折点
- android - 手机的键盘隐藏了我的底页对话框片段。我该如何解决这个问题?
- javascript - IE11 无法识别 vendor.js 中的 rest 参数
- c - 如何使用 C 语言遍历 ARM AT91SAM7S256 微控制器中的 LED 列表
- javascript - 如何使用自定义属性将数组项映射到新对象?
- android - 在运行时更改 gradle 依赖项中的代码
- javascript - How can i get link from MSO code via javascript
- azure-devops - 来自 azure devops 的 teamcity 的服务挂钩 URL 返回 404
- javascript - 在网络工作者中解码图像