2

軸サブプロットのマークが「0,20,40,60,80,100」と表示されているとしますが、最後のマーク 100 を非表示にしたいとします。matplotlib の軸サブプロットに対してどうすればよいかわかりませんか?

4

2 に答える 2

4

x-ticks の位置を設定している場合は、最後のラベルを空の文字列に置き換えるだけです。

import pylab as plt

x=[12, 13, 14, 15, 16]
y=[14, 15, 16, 17, 18]

xticks=[12,13,14,15,16]

fig=plt.figure()
ax=fig.add_subplot(111)
ax.plot(x,y,'o-')

ax.set_xticks(xticks)
ax.set_xticklabels(xticks[:-1]+[""])
plt.show()

次を使用して、最後の x-tick ラベルを削除することもできます

for label in ax.get_xticklabels():
    pass
label.set_visible(False)
于 2012-07-23T10:25:29.827 に答える
3

あなたの質問では、ティックラベルに加えてティックラインを非表示にするかどうかを指定していないため、ティックラインも非表示にする場合は、この行でそれを行う必要があります

plt.setp(ax.get_xticklines()[-2:],visible=False)

Matplotlib の目盛りラベルの順序は、左から右に移動して、下と上が交互になります。したがって、最後の 2 つを非表示にすると、上と下の両方の目盛りラベルを非表示にする必要があると想定されます。一番下のものだけを非表示にするには:

plt.setp(ax.get_xticklines()[-2],visible=False)

または一番上のもの:

plt.setp(ax.get_xticklines()[-1],visible=False)

@imscによる以前の回答への追加を意図したものであり、可視性ステータスがTrueにリセットされるのを避けるために、xticklabelsのIDを設定する行の後に入力する必要があることを追加する必要があります。

于 2012-07-23T12:58:56.970 に答える