2012-10-21 8 views
145

私はsemilogxプロットを持っています。私はxticksを削除したいと思います。私は試しました:matplotlibプロットでxticksを削除しますか?

plt.gca().set_xticks([]) 
plt.xticks([]) 
ax.set_xticks([]) 

グリッドは消える(OK)が、小さな目盛り(メインの目盛りの場所に)が残ります。それらを削除するには?

答えて

249

tick_paramsメソッドは、このようなものに非常に便利です。このコードは、メジャーとマイナーダニをオフにし、x軸からラベルを削除します。

from matplotlib import pyplot as plt 
plt.plot(range(10)) 
plt.tick_params(
    axis='x',   # changes apply to the x-axis 
    which='both',  # both major and minor ticks are affected 
    bottom='off',  # ticks along the bottom edge are off 
    top='off',   # ticks along the top edge are off 
    labelbottom='off') # labels along the bottom edge are off 
plt.show() 
plt.savefig('plot') 
plt.clf() 

​​

+34

として空の目盛り位置とラベルを渡すことができます。結果はx軸とy軸の両方に適用されます: 'plt.tick_params(axis = 'both'、= 'both'、bottom = 'off'、top = 'off'、labelbottom = 'off'、right = 'off '、left =' off '、labelleft =' off ') ' –

+1

3Dプロットの場合はどうなりますか? –

+11

これはすばらしい答えです。 ooバージョンを探している人にとっては、 'axes'には同じ' 'tick_params'(http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.tick_params)メソッドがあります。 –

34

ジョンVinyardによって与えられたものよりも優れた、そしてシンプルな、解決策があります。使用するNullLocator

import matplotlib.pyplot as plt 

plt.plot(range(10)) 
plt.gca().xaxis.set_major_locator(plt.NullLocator()) 
plt.show() 
plt.savefig('plot') 

希望に役立ちます。

+15

"Better"は議論の余地がありますが、代わりに+1です。 – bernie

20

ラベル(ただしティック)を除去するために、これを試してみてください:

import matplotlib.pyplot as plt 

plt.setp(ax.get_xticklabels(), visible=False) 

example

+1

'setp'はピラブモードです。個々の軸に対して使用することはできません。 – dashesy

54

ないまさにOPが求めていたが、すべての軸のラインを無効にする簡単な方法、ダニやラベルは、単に呼び出すことです。ここでは

plt.axis('off') 
+6

私は感謝しました。オブジェクト指向バージョンは、既存のAxesインスタンス上で 'ax.axis( 'off')'になります。 – PlasmaBinturong

41

は、私がmatplotlib mailing listで見つけ代替ソリューションです。

import matplotlib.pylab as plt 

x = range(1000) 
ax = plt.axes() 
ax.semilogx(x, x) 
ax.xaxis.set_ticks_position('none') 

graph

37

また、私はこの質問に答えるが、オン/オフのいくつかの事を回すためのテンプレートを提供するだけでなく、どのように感謝

plt.xticks([], []) 
関連する問題