plt.gca().set_xticks([])
plt.xticks([])
ax.set_xticks([])
网格消失了(确定),但是仍然保留了小刻度(在主刻度上)。如何删除它们?
#1 楼
tick_params
方法对于这样的事情非常有用。该代码关闭主要和次要刻度,并从x轴上删除标签。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()
评论
我赞赏这不仅能回答问题,而且提供了一个用于打开/关闭几件事的模板。这会将结果应用于x和y轴:plt.tick_params(axis ='both',which ='both',bottom ='off',top ='off',labelbottom ='off',right ='off' ,left ='off',labelleft ='off')
–史蒂文·霍维尔(Steven C. Howell)
2015年7月11日在4:32
如果是3D图怎么办?
–tommy.carstensen
2015年9月2日19:23在
这是一个很好的答案。对于寻找oo版本的用户,轴具有相同的tick_params方法。
–疯狂物理学家
16年8月16日在17:13
在较新版本的matplotlib中,应将“ on”替换为True,将“ off”替换为False。
– BallpointBen
18年3月22日在23:22
答案应针对OOP接口和较新版本的语法进行更新。
–ifly6
19年9月30日在19:27
#2 楼
不完全是OP的要求,而是禁用所有轴线,刻度和标签的简单方法是简单地调用:plt.axis('off')
评论
我需要什么谢谢。面向对象的版本在现有axes实例上为ax.axis('off')。
–等离子Binturong
16年6月7日在10:21
仅适用于xaxis?
– qrtLs
19年3月19日在9:26
@qrtLs仅禁用x轴标签:plt.xticks([])为我工作。
–瑞沙(Rishabh Agrahari)
20 Dec 18'在9:53
#3 楼
另外,您可以传递一个空的刻度位置并将其标签为# 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([],[])
– GuilhermeSalomé
19 Mar 19 '19在18:56
@GuilhermeSalomé现在会发出警告,“自Matplotlib 3.2起,不推荐在位置上传递set_xticks()的次要参数;该参数将在以后的两个次要版本中变为仅关键字形式。”现在正确的解决方案是什么?
– Rylan Schaeffer
20年4月23日在15:01
@RylanSchaeffer ax.set_xticks([])用于大刻度线,ax.set_xticks([],minor = True)用于小刻度线。 pyplot的等效项是plt.xticks([])和plt.xticks([],minor = True)。
–Anakhand
20-5-5在13:08
#4 楼
这是我在matplotlib邮件列表上找到的替代解决方案:import matplotlib.pylab as plt
x = range(1000)
ax = plt.axes()
ax.semilogx(x, x)
ax.xaxis.set_ticks_position('none')
#5 楼
有比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')
希望有所帮助。
评论
“更好”是值得商bat的,但备选方案则为+1。
–mechanical_meat
13年1月21日在18:38
当目标是仅从“放大”插图中删除xticks,同时将其保留在主图中时,此解决方案的变体也对我有用。使用axins.xaxis.set_major_locator(plt.NullLocator()),其中axins是axins = zoomed_inset_axes()(从mpl_toolkits.axes_grid1.inset_locator导入的函数)返回的对象。
–丹尼斯·苏梅斯(Dennis Soemers)
18年8月14日在13:06
#6 楼
尝试这样做以除去标签(而不是刻度):import matplotlib.pyplot as plt
plt.setp( ax.get_xticklabels(), visible=False)
示例
评论
setp处于pylab模式,不能用于单个轴
–破破烂烂
2014年9月2日23:21
面向对象的接口怎么样?
–ifly6
19-09-30在17:57
这是对我来说也适用于3D绘图的唯一答案。谢谢你!
–布伦特
20-2-3在22:06
#7 楼
此代码段可能仅有助于删除xticks。from matplotlib import pyplot as plt
plt.xticks([])
此代码段可能有助于删除xticks和yticks。
from matplotlib import pyplot as plt
plt.xticks([]),plt.yticks([])
#8 楼
那些想要关闭所有刻度线和标签的简短命令的人应该可以使用 plt.tick_params(top=False, bottom=False, left=False, right=False,
labelleft=False, labelbottom=False)
,该类型允许使用
bool
自版本matplotlib> = 2.1.1起的各个参数对于自定义刻度设置,文档很有帮助:
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html
#9 楼
# 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()
– MarceloVilla-Piñeros
19年4月20日在4:45
另外,不建议使用off和on。 MatplotlibDeprecationWarning:不建议将“ on”,“ true”,“ off”,“ false”之一作为布尔值传递;而是使用实际的布尔值(True / False)。
– MarceloVilla-Piñeros
19-4-20在4:58
#10 楼
通过向脚本添加命令来修改以下rc参数:plt.rcParams['xtick.bottom'] = False
plt.rcParams['xtick.labelbottom'] = False
matplotlib文档的此部分描述了一个matplotlibrc示例文件,其中列出了许多其他参数,例如更改图形大小,图形颜色,动画设置等
评论
有些解决方案对我不起作用。但是这里的示例稍有变化:ax.set_xticks([],[])并解决了...