关于python:删除matplotlib图中的xticks?

Remove xticks in a matplotlib plot?

我有一个半对数图,我想去掉这些符号。我尝试过:

1
2
3
plt.gca().set_xticks([])
plt.xticks([])
ax.set_xticks([])

网格消失(正常),但小刻度(在主刻度的位置)仍保留。如何移除它们?


tick_params方法对这种情况非常有用。此代码关闭主要刻度和次要刻度,并从X轴删除标签。

1
2
3
4
5
6
7
8
9
10
11
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()

enter image description here


不完全符合操作要求,但禁用所有轴线、刻度和标签的简单方法是简单地调用:

1
plt.axis('off')


或者,您可以传递一个空的勾号位置并将其标记为

1
plt.xticks([], [])


以下是我在Matplotlib邮件列表中找到的另一个解决方案:

1
2
3
4
5
6
import matplotlib.pylab as plt

x = range(1000)
ax = plt.axes()
ax.semilogx(x, x)
ax.xaxis.set_ticks_position('none')

氧化镁


有一个比约翰·温雅德给出的更好、更简单的解决方案。使用NullLocator

1
2
3
4
5
6
import matplotlib.pyplot as plt

plt.plot(range(10))
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.show()
plt.savefig('plot')

希望有帮助。


尝试此操作删除标签(但不删除标记):

1
2
3
import matplotlib.pyplot as plt

plt.setp( ax.get_xticklabels(), visible=False)

例子


这段代码可能有助于只删除xticks。

1
2
from matplotlib import pyplot as plt    
plt.xticks([])

这段代码可能有助于删除xticks和yticks。

1
2
from matplotlib import pyplot as plt    
plt.xticks([]),plt.yticks([])

1
2
# 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')