我可以用
ax.set_xticks([]) ax.set_yticks([])
但这也去除了标签。任何方式,我可以绘制刻度标签,但不是刻度和脊柱
9rygscc11#
您可以使用tick_params(http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params)将刻度长度设置为0:
tick_params
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()
niknxzdl2#
谢谢你的回答@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()
zynd9foi3#
在参加一个关于Python的课程时,这是一个问题。下面是给出的解决方案,我认为它更具有可读性和直观性。
ax.tick_params(top=False, bottom=False, left=False, right=False, labelleft=True, labelbottom=True)
ztyzrc3y4#
这对我很有效:
plt.tick_params(axis='both', labelsize=0, length = 0)
rggaifut5#
matplotlib.pyplot.setp(*args, **kwargs)用于设置艺术家对象的属性。您可以在get_xticklabels()之外使用它来使其不可见。大致如下
matplotlib.pyplot.setp(*args, **kwargs)
get_xticklabels()
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)
下面是参考页面http://matplotlib.org/api/pyplot_api.html
v2g6jxz66#
您可以设置yaxis和xaxisset_ticks_position属性,使它们分别只显示在左侧和底部。
yaxis
xaxis
set_ticks_position
ax.yaxis.set_ticks_position('left') ax.xaxis.set_ticks_position('bottom')
此外,还可以通过将特定脊椎的set_visible属性设置为False来隐藏脊椎。
set_visible
False
axes[i].spines['right'].set_visible(False) axes[i].spines['top'].set_visible(False)
m3eecexj7#
这对我来说效果很好!试试看
import matplotlib.pyplot as plt import numpy as np plt.figure() languages =['Python', 'SQL', 'Java', 'C++', 'JavaScript'] pos = np.arange(len(languages)) popularity = [56, 39, 34, 34, 29] plt.bar(pos, popularity, align='center') plt.xticks(pos, languages) plt.ylabel('% Popularity') plt.title('Top 5 Languages for Math & Data \nby % popularity on Stack Overflow', alpha=0.8) # remove all the ticks (both axes), plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on') plt.show()
2vuwiymt8#
目前遇到了相同的问题,在版本3.3.3中解决如下:
# My matplotlib ver: 3.3.3 ax.tick_params(tick1On=False) # "for left and bottom ticks" ax.tick_params(tick2On=False) # "for right and top ticks, which are off by default"
示例:
fig, ax = plt.subplots() ax.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5]) ax.tick_params(tick1On=False) plt.show()
输出:
oyt4ldly9#
假设您要删除Y轴上的一些刻度,并仅显示与值大于0的刻度对应的yticks,您可以执行以下操作:
Y
yticks
from import matplotlib.pyplot as plt fig, ax = plt.subplots() # yticks and yticks labels yTicks = list(range(26)) yTicks = [yTick if yTick % 5 == 0 else 0 for yTick in yTicks] yTickLabels = [str(yTick) if yTick % 5 == 0 else '' for yTick in yTicks]
然后按如下方式设置轴对象的Y轴:
ax.yaxis.grid(True) ax.set_yticks(yTicks) ax.set_yticklabels(yTickLabels, fontsize=6) fig.savefig('temp.png') plt.close()
你会得到一个这样的图:
9条答案
按热度按时间9rygscc11#
您可以使用
tick_params
(http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params)将刻度长度设置为0:niknxzdl2#
谢谢你的回答@julien-spronck和@cmidi。
作为说明,我必须使用这两种方法来使其工作:
zynd9foi3#
在参加一个关于Python的课程时,这是一个问题。
下面是给出的解决方案,我认为它更具有可读性和直观性。
ztyzrc3y4#
这对我很有效:
rggaifut5#
matplotlib.pyplot.setp(*args, **kwargs)
用于设置艺术家对象的属性。您可以在get_xticklabels()
之外使用它来使其不可见。大致如下
下面是参考页面http://matplotlib.org/api/pyplot_api.html
v2g6jxz66#
您可以设置
yaxis
和xaxis
set_ticks_position
属性,使它们分别只显示在左侧和底部。此外,还可以通过将特定脊椎的
set_visible
属性设置为False
来隐藏脊椎。m3eecexj7#
这对我来说效果很好!试试看
2vuwiymt8#
目前遇到了相同的问题,在版本3.3.3中解决如下:
示例:
输出:
oyt4ldly9#
假设您要删除
Y
轴上的一些刻度,并仅显示与值大于0的刻度对应的yticks
,您可以执行以下操作:然后按如下方式设置轴对象的
Y
轴:你会得到一个这样的图: