Python隐藏刻度,但显示刻度标签

use*_*827 47 python matplotlib

我可以删除刻度线

ax.set_xticks([]) 
ax.set_yticks([]) 
Run Code Online (Sandbox Code Playgroud)

但这也会删除标签.我可以用任何方式绘制刻度标签而不是刻度线和脊柱

Jul*_*nck 73

您可以使用tick_params(http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params)将刻度长度设置为0 :

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1],[1])
ax.tick_params(axis=u'both', which=u'both',length=0)
plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 您也可以使用`ax.xaxis.set_tick_params(...)`代替例如`ax.tick_params(axis ='x',...)`。前者有点面向对象。 (5认同)

mab*_*mab 19

感谢您的回答@ julien-spronck和@cmidi.
作为一个注释,我必须使用这两种方法使其工作:

import numpy as np
import matplotlib.pyplot as plt

fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(11, 3))

data = np.random.random((4, 4))

ax1.imshow(data)
ax1.set(title='Bad', ylabel='$A_y$')
# plt.setp(ax1.get_xticklabels(), visible=False)
# plt.setp(ax1.get_yticklabels(), visible=False)
ax1.tick_params(axis='both', which='both', length=0)

ax2.imshow(data)
ax2.set(title='Somewhat OK', ylabel='$B_y$')
plt.setp(ax2.get_xticklabels(), visible=False)
plt.setp(ax2.get_yticklabels(), visible=False)
# ax2.tick_params(axis='both', which='both', length=0)

ax3.imshow(data)
ax3.set(title='Nice', ylabel='$C_y$')
plt.setp(ax3.get_xticklabels(), visible=False)
plt.setp(ax3.get_yticklabels(), visible=False)
ax3.tick_params(axis='both', which='both', length=0)

plt.show()
Run Code Online (Sandbox Code Playgroud)

带有所需标签的代码的结果


cmi*_*idi 5

matplotlib.pyplot.setp(*args, **kwargs)用于设置艺术家对象的属性。除了get_xticklabes()使其不可见之外,您还可以使用它。

以下内容

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(2,1,1)
ax.set_xlabel("X-Label",fontsize=10,color='red')
plt.setp(ax.get_xticklabels(),visible=False)
Run Code Online (Sandbox Code Playgroud)

以下是参考页面 http://matplotlib.org/api/pyplot_api.html


Mar*_*lla 5

您可以设置yaxisxaxis set_ticks_position属性,使它们分别显示在左侧和底部。

ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
Run Code Online (Sandbox Code Playgroud)

set_visible此外,您还可以通过将特定脊柱的属性设置为 来隐藏脊柱False

axes[i].spines['right'].set_visible(False)
axes[i].spines['top'].set_visible(False)
Run Code Online (Sandbox Code Playgroud)


Mar*_*cus 5

在参加有关Python的课程时,这是一个问题。

下面是给定的解决方案,我认为它更易读和直观。

ax.tick_params(top='off', bottom='off', left='off', right='off', labelleft='on', labelbottom='on')
Run Code Online (Sandbox Code Playgroud)

  • 从v2.2开始不建议使用“ on”或“ off”,您现在应该使用True或False。 (7认同)

小智 5

这为我工作:

plt.tick_params(axis='both', labelsize=0, length = 0)
Run Code Online (Sandbox Code Playgroud)