【发布时间】:2016-08-30 14:20:01
【问题描述】:
我有这张图片:
plt.plot(sim_1['t'],sim_1['V'],'k')
plt.ylabel('V')
plt.xlabel('t')
plt.show()
我想隐藏数字;如果我使用:
plt.axis('off')
...我得到这张图片:
它还会隐藏标签V 和t。如何在隐藏值的同时保留标签?
【问题讨论】:
标签: python matplotlib
我有这张图片:
plt.plot(sim_1['t'],sim_1['V'],'k')
plt.ylabel('V')
plt.xlabel('t')
plt.show()
我想隐藏数字;如果我使用:
plt.axis('off')
...我得到这张图片:
它还会隐藏标签V 和t。如何在隐藏值的同时保留标签?
【问题讨论】:
标签: python matplotlib
如果你使用 matplotlib object-oriented approach,这是一个使用 ax.set_xticklabels() 和 ax.set_yticklabels() 的简单任务。在这里,我们可以将它们设置为空列表以删除任何标签:
import matplotlib.pyplot as plt
# Create Figure and Axes instances
fig,ax = plt.subplots(1)
# Make your plot, set your axes labels
ax.plot(sim_1['t'],sim_1['V'],'k')
ax.set_ylabel('V')
ax.set_xlabel('t')
# Turn off tick labels
ax.set_yticklabels([])
ax.set_xticklabels([])
plt.show()
如果您还想删除刻度线和标签,可以使用 ax.set_xticks() 和 ax.set_yticks() 并将它们也设置为空列表:
ax.set_xticks([])
ax.set_yticks([])
【讨论】:
ax.set_yticks([])。
没有subplots,您可以像这样普遍删除刻度:
plt.xticks([])
plt.yticks([])
【讨论】:
这很好用。把这个贴在plt.show()之前:
plt.gca().axes.get_yaxis().set_visible(False)
轰隆隆。
【讨论】:
ax.xaxis.set_visible(False)
ax.axes.get_xaxis().set_visible(False) 也有效
要完全删除刻度线,请使用:
ax.set_yticks([])
ax.set_xticks([])
否则ax.set_yticklabels([]) 和ax.set_xticklabels([]) 将保留标记。
【讨论】:
ax.set_yticks([], []) 时,我收到以下警告:“MatplotlibDeprecationWarning: Passing the minor parameter of set_xticks() positionally is deprecated since Matplotlib 3.2; the parameter will become keyword-only two minor releases 。”什么是正确的选择?
ax.set_yticks([], []) 中,您传递了 2 个导致错误的空列表。为什么这样做?请参阅命令手册。如果第一个参数不应该按位置传递,请使用关键字传递它:ax.set_yticks(ticks=[])。
不确定这是最好的方法,但您当然可以像这样替换刻度标签:
import matplotlib.pyplot as plt
x = range(10)
y = range(10)
plt.plot(x,y)
plt.xticks(x," ")
plt.show()
在 Python 3.4 中,这会生成一个简单的线图,x 轴上没有刻度标签。一个简单的例子在这里: http://matplotlib.org/examples/ticks_and_spines/ticklabels_demo_rotation.html
这个相关问题也有一些更好的建议: Hiding axis text in matplotlib plots
我是 python 新手。您的里程可能在早期版本中有所不同。也许其他人可以提供帮助?
【讨论】:
这也有效。
fig, ax = plt.subplots()
ax.yaxis.set_major_locator(plt.NullLocator())
ax.xaxis.set_major_formatter(plt.NullFormatter())
请参阅本书了解自定义刻度的好技巧 https://jakevdp.github.io/PythonDataScienceHandbook/04.10-customizing-ticks.html
【讨论】: