2012-07-22 17 views
7

Matlibplot eksenlerini kullanarak 2 alt çizim çizmek istiyorum. Bu iki alt platforma aynı ylabel ve kenelere sahip olduğundan, ikinci alt plotun hem işaretlerini hem de işaretlerini kapatmak istiyorum.Matlibplot eksenlerinin keneleri ve işaretleri nasıl kapatılır?

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) 

BTW, X ekseni işaretleri üst üste ve düzgün bir çözüm ya da değil olup olmadığını emin değilim: Aşağıdaki benim kısa yazısıdır. (Bir çözüm, sonuncusu hariç her alt-çizim için son işareti görünmez yapabilir, ama nasıl emin değil). Teşekkürler!

cevap

8

Hızlı google ve buldum cevaplar:

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

Biraz farklı bir çözüm olabilir aslında ticklabels için '' ayarlayın. Aşağıda, tüm y-ticklabels kurtulmak ve işaretleri kene olacaktır:

# 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) 

Ve şimdi x ekseni

# 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) 
için son onay işareti ve etiket kurtulmak için
İlgili konular