我有一个 semilogx 图,我想删除 xticks。我试过了:
plt.gca().set_xticks([])
plt.xticks([])
ax.set_xticks([])
网格消失(好的),但小刻度(在主要刻度的位置)仍然存在。如何删除它们?
ax.set_xticks([], [])
,它就解决了......
plt.tick_params
方法对于此类事情非常有用。此代码关闭主要和次要刻度并从 x 轴上删除标签。
请注意,matplotlib.axes.Axes
对象也有 ax.tick_params
。
from matplotlib import pyplot as plt
plt.plot(range(10))
plt.tick_params(
axis='x', # changes apply to the x-axis
which='both', # both major and minor ticks are affected
bottom=False, # ticks along the bottom edge are off
top=False, # ticks along the top edge are off
labelbottom=False) # labels along the bottom edge are off
plt.show()
plt.savefig('plot')
plt.clf()
https://i.stack.imgur.com/0emBv.png
不完全是 OP 所要求的,但禁用所有轴线、刻度线和标签的简单方法是简单地调用:
plt.axis('off')
ax.axis('off')
。
plt.xticks([])
对我有用。
或者,您可以传递一个空的刻度位置和标签为
# for matplotlib.pyplot
# ---------------------
plt.xticks([], [])
# for axis object
# ---------------
# from Anakhand May 5 at 13:08
# for major ticks
ax.set_xticks([])
# for minor ticks
ax.set_xticks([], minor=True)
ax
,那么您可以使用:ax.set_xticks([], [])
ax.set_xticks([])
表示主要刻度,ax.set_xticks([], minor=True)
表示次要刻度。 pyplot
的等价物是 plt.xticks([])
和 plt.xticks([], minor=True)
。
这是我在 matplotlib mailing list 上找到的替代解决方案:
import matplotlib.pylab as plt
x = range(1000)
ax = plt.axes()
ax.semilogx(x, x)
ax.xaxis.set_ticks_position('none')
https://i.imgur.com/CzJKsoZ.png
有一个比 John Vinyard 给出的更好、更简单的解决方案。使用 NullLocator
:
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.show()
plt.savefig('plot')
希望有帮助。
axins.xaxis.set_major_locator(plt.NullLocator())
,其中 axins
是 axins = zoomed_inset_axes()
返回的对象(从 mpl_toolkits.axes_grid1.inset_locator
导入的函数)。
试试这个来删除标签(但不是蜱虫):
import matplotlib.pyplot as plt
plt.setp( ax.get_xticklabels(), visible=False)
setp
处于 pylab 模式,不能用于单个轴
此代码段可能仅有助于删除 xticks。
from matplotlib import pyplot as plt
plt.xticks([])
此代码段可能有助于同时删除 xticks 和 yticks。
from matplotlib import pyplot as plt
plt.xticks([]),plt.yticks([])
那些正在寻找关闭所有刻度和标签的简短命令的人应该可以
plt.tick_params(top=False, bottom=False, left=False, right=False,
labelleft=False, labelbottom=False)
自版本 matplotlib>=2.1.1 以来,它允许为各个参数输入 bool
对于自定义刻度设置,文档很有帮助:
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html
# remove all the ticks (both axes), and tick labels on the Y axis
plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')
ax.tick_params()
off
和 on
。 MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
通过将命令添加到脚本来修改以下 rc 参数:
plt.rcParams['xtick.bottom'] = False
plt.rcParams['xtick.labelbottom'] = False
matplotlib 文档的 this section 中描述了一个示例 matplotlibrc 文件,其中列出了许多其他参数,例如更改图形大小、图形颜色、动画设置等。
plt.tick_params(axis='both', which='both', bottom='off', top='off', labelbottom='off', right='off', left='off', labelleft='off')
axes
具有相同的tick_params
方法。matplotlib
中,您应该将'on'
替换为True
并将'off'
替换为False
。