hoa*_*ran 4 python matplotlib labels
我想在轴上有一个小刻度,但只显示主刻度标签.例如,次要刻度是[19,20,21,... 40,41],主刻度标签是[20,25,30,35,40].我该怎么做?下面的代码没有完成这项工作.我知道可以像这个例子一样使用MultipleLocator,FormatStrFormatter .但是,我在轴上的值有点"奇怪",起始值为19(不是20),结束值为41,这在使用MultipleLocator时会造成困难.
import numpy as np
from matplotlib import pylab as plt
fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(19.,41,23)
y = x**2
ax.plot(x,y)
ax.set_xticks(x)
ax.set_xticklabels(x, minor=False)
plt.show()
Run Code Online (Sandbox Code Playgroud)
它给了我以下情节:

或者ax.set_xticklabels([20, 25, 30, 35, 40], minor=False)
给我另一个情节:
如何更改我的代码以获得我需要的内容.非常感谢你的帮助!
car*_*rla 16
我真的不明白为什么MultipleLocator在你的例子中使用起来很困难.
在代码中添加这些行
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
majorLocator = MultipleLocator(5)
majorFormatter = FormatStrFormatter('%d')
minorLocator = MultipleLocator(1)
ax.xaxis.set_major_locator(majorLocator)
ax.xaxis.set_major_formatter(majorFormatter)
ax.xaxis.set_minor_locator(minorLocator)
Run Code Online (Sandbox Code Playgroud)
你会得到这个图像,我明白这是你想要的(不是吗?):

如果您不希望在您的数据范围下方显示刻度,请使用以下命令手动定义刻度FixedLocator:
from matplotlib.ticker import FixedLocator
majorLocator = FixedLocator(np.linspace(20,40,5))
minorLocator = FixedLocator(np.linspace(19,41,23))
Run Code Online (Sandbox Code Playgroud)
你会得到这个图像:

| 归档时间: |
|
| 查看次数: |
8696 次 |
| 最近记录: |