2012-07-22 17 views
7

matlibplotの軸を使って2つのサブプロットをプロットしたいと思います。これらの2つのサブプロットは同じイダベルとダニを持っているので、2番目のサブプロットのダニとマークの両方を消したいと思います。matlibplot軸の目盛りと目印をオフにするにはどうすればいいですか?

import matplotlib.pyplot as plt 
ax1=plt.axes([0.1,0.1,0.4,0.8]) 
ax1.plot(X1,Y1) 
ax2=plt.axes([0.5,0.1,0.4,0.8]) 
ax2.plot(X2,Y2) 

ところで、X軸マークが重ねてきちんと解決策があるかどうかわからない:次は私の短いスクリプトです。 (解決策は、最後のものを除いて各サブプロットに対して最後のマークを見えないようにするかもしれないが、その方法は不明である)。ありがとう!

答えて

8

簡単にGoogleと私が見つけた答え:

plt.setp(ax2.get_yticklabels(), visible=False) 
ax2.yaxis.set_tick_params(size=0) 
ax1.yaxis.tick_left() 
4

Aわずかに異なる解決策があるかもしれないが、実際にticklabelsに '' を設定します。以下は、すべてのy ticklabelsを取り除くと目盛りれます:

# This is from @pelson's answer 
plt.setp(ax2.get_yticklabels(), visible=False) 

# This actually hides the ticklines instead of setting their size to 0 
# I can never get the size=0 setting to work, unsure why 
plt.setp(ax2.get_yticklines(),visible=False) 

# This hides the right side y-ticks on ax1, because I can never get tick_left() to work 
# yticklines alternate sides, starting on the left and going from bottom to top 
# thus, we must start with "1" for the index and select every other tickline 
plt.setp(ax1.get_yticklines()[1::2],visible=False) 

そして今

# I used a for loop only because it's shorter 
for ax in [ax1, ax2]: 
    plt.setp(ax.get_xticklabels()[-1], visible=False) 
    plt.setp(ax.get_xticklines()[-2:], visible=False) 
x軸のための最後の目盛りとラベルを取り除くために
関連する問題