11

以下のプロットから原点の目盛りを削除して、それらが重ならないようにしようとしています。代わりに、それらを互いに離して移動することも素晴らしいでしょう。

ここに画像の説明を入力

xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
yticks = ax.yaxis.get_major_ticks()
yticks[0].label1.set_visible(False)

ただし、これにより、次のように y 軸から最初と最後の目盛りが削除されます。

ここに画像の説明を入力

これを行う方法について誰か考えがありますか?どんな助けでも大歓迎です。

編集:サンプルコードを追加

import matplotlib
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
plt.xlabel(xlab)
plt.ylabel(ylab)
ax.spines["right"].set_color('none')
ax.xaxis.set_ticks_position('top')
ax.yaxis.set_ticks_position('left')
ax.spines["bottom"].set_color('none')
ax.xaxis.set_label_position('top')
ax.spines['left'].set_color('black')
ax.spines['top'].set_color('black')
ax.tick_params(colors='black')
xticks = ax.xaxis.get_major_ticks()
xticks[0].label1.set_visible(False)
yticks = ax.yaxis.get_major_ticks()
yticks[-1].label1.set_visible(False)
for x, y in all:
    ax.plot(x, y, 'ro')
4

3 に答える 3

11

あなたはほとんどそこにいました。y 軸の原点は下にあります。これは、一番上にある、削除したい目盛りが最後の目盛りであることを意味しますyticks[-1]

yticks[-1].set_visible(False)
于 2013-10-21T16:11:54.377 に答える
10

なぜ単純にやらないのか

ax.set_xticks(ax.get_xticks()[1:])
ax.set_yticks(ax.get_yticks()[:-1])

ax軸オブジェクトです。

于 2013-10-21T20:13:23.920 に答える
2
ax.xaxis.get_major_ticks()[0].draw = lambda *args:None
ax.yaxis.get_major_ticks()[-1].draw = lambda *args:None
于 2013-10-21T16:08:41.250 に答える