web-dev-qa-db-ja.com

pythonで目盛りラベルを非表示にするが、目盛りを所定の位置に保持する方法は?

作成したプロットの目盛りラベルを非表示にしますが、この目盛り自体は保持します(軸上の小さなマーク)。たとえば、見つけたものを使用しようとすると、 here のように、ラベルだけでなくティック全体が削除されます。ラベルのみを削除するにはどうすればよいですか?

32
Yotam

目盛りラベルを空の配列ではなく、空の文字列のリストに設定します。以下の例では、xtickラベルを空の文字列に置き換え、y軸はそのままにしました。ここから、必要に応じて特定のラベルを選択的に保持できます。

import pylab as plt

fig, ax = plt.subplots()
ax.plot([1,2,3],[4,5,6])

labels = [item.get_text() for item in ax.get_xticklabels()]

empty_string_labels = ['']*len(labels)
ax.set_xticklabels(empty_string_labels)

plt.show()

enter image description here

このコードは、 以前の回答 から採用されています。

14
Hooked

ax.tick_params

import matplotlib.pylab as plt

fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])

ax.tick_params(labelbottom=False)    

plt.show()
87
divenex

私のために働くdivenexの答えは見つかりませんでした。この回答は、自動ラベル付けをトリガーせずにティックを作成するため、「labelbottom = False」を使用する必要はありません。

下と左のティックが既に存在する場合:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])

ax.tick_params(right= True,top= True)

ティックが既に存在しない場合:

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
plt.plot([1,2,3],[4,5,6])

ax.tick_params(right= True,top= True,left= True, bottom= True)
1
jbplasma