matplotlib 隐藏刻度标签值但保留轴标签

drkbr07n  于 2023-04-07  发布在  其他
关注(0)|答案(8)|浏览(232)

我有这样的形象:

plt.plot(sim_1['t'],sim_1['V'],'k')
plt.ylabel('V')
plt.xlabel('t')
plt.show()

我想把数字隐藏起来;如果我用途:

plt.axis('off')

我看到了这个画面

它还隐藏了标签Vt。如何在隐藏值的同时保留标签?

xqnpmsa8

xqnpmsa81#

如果你使用matplotlib面向对象的方法,这是一个简单的任务,使用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([])
wgxvkvu9

wgxvkvu92#

如果没有subplots,你可以像这样删除ticks:

plt.xticks([])
plt.yticks([])
ftf50wuq

ftf50wuq3#

这很好用。只需将此粘贴到plt.show()之前:

plt.gca().axes.get_yaxis().set_visible(False)
mrzz3bfm

mrzz3bfm4#

要完全删除刻度线,请用途:

ax.set_yticks([])
ax.set_xticks([])

否则ax.set_yticklabels([])ax.set_xticklabels([])将保持刻度标记。

sxpgvts3

sxpgvts35#

我不确定这是不是最好的方法,但是你可以像这样替换刻度标签:

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的新手。你的里程可能会在早期版本中有所不同。也许其他人可以帮助?

uyhoqukh

uyhoqukh6#

plt.gca().axes.yaxis.set_ticklabels([])

toe95027

toe950277#

这也行得通。

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的好技巧

cwxwcias

cwxwcias8#

有了这个就足够了:

plt.xticks(color='w')

相关问题