Python 如何在matplotlib配置文件中定义次刻度的数量
使用一个Python 如何在matplotlib配置文件中定义次刻度的数量,python,matplotlib,Python,Matplotlib,使用一个Locator()可以控制matplotlib轴上的次刻度或主刻度的数量 例如: plt.gca().yaxis.set_minor_locator(plt.MultipleLocator(1)) 但上面的线条取决于您正在绘制的数据 我想知道是否有办法更改matplotlib样式文件(如matplotlibrc())中的小刻度数。例如,可以使用以下工具管理次要记号样式: xtick.minor.visible : True xtick.minor.width : 2 xtick.m
Locator()
可以控制matplotlib轴上的次刻度或主刻度的数量
例如:
plt.gca().yaxis.set_minor_locator(plt.MultipleLocator(1))
但上面的线条取决于您正在绘制的数据
我想知道是否有办法更改matplotlib样式文件(如matplotlibrc
())中的小刻度数。例如,可以使用以下工具管理次要记号样式:
xtick.minor.visible : True
xtick.minor.width : 2
xtick.minor.size : 5
但是我不知道如何处理小刻度的数量。刻度的数量并不是真正的“样式”属性。因此,您目前没有选择使用rc文件进行此操作 至于默认设置的来源,这是由确定的,如果没有提供其他自定义定位器并且启用了次刻度,则将使用
matplotlib.ticker.AutoMinorLocator(n=None)
根据主记号的位置动态查找次记号位置。刻度必须与等距的主刻度呈线性
n
是主刻度之间间隔的细分数;e、 例如,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()
使用
其中,
ax
是轴,2
是小刻度的数量,您可以根据自己的喜好进行替换。刻度的数量实际上并不被视为“样式”属性。因此,您目前没有选择使用rc文件。是的,这是真的,但无论我的绘图(没有日志轴),我总是在主刻度之间获得3个小刻度。因此,我想知道这个默认数字是从哪里来的。不过请注意,有一个bug,它使得在将xtick.minor.visible
设置为True
时,x轴和y轴的次刻度都可见。我已经求婚了。
ax.xaxis.set_minor_locator(matplotlib.ticker.AutoMinorLocator(2))
ax.yaxis.set_minor_locator(matplotlib.ticker.AutoMinorLocator(2))