2013-07-02 23 views
8

Uzun x ekseni etiketlerini okunabilir bir şekilde çizmek için autofmt_xdate kullanıyorum. Sorun şu ki, farklı alt alanları birleştirmek istediğimde, diğer alt piksellerin x ekseni etiketlemesi yok oluyor, ki bu da aşağıdaki şekilde en alttaki altpipte (iki satır yüksek) takdir etmiyorum. autofmt_xdate'un diğer x ekseni etiketlerini söndürmesinin önlenmesi için bir yol var mı? Veya etiketleri çevirmenin başka bir yolu var mı? Gördüğünüz gibi, xticks ile deney yaptım ve "döndür" de, ancak sonuçlar tatmin edici değildi çünkü etiketler merkezlerinin etrafında döndü, bu da dağınık etiketleme ile sonuçlandı. Aşağıdaki arsa üretirautofmt_xdate, tüm alt piksellerin x ekseni etiketlerini siler

Senaryo:

from matplotlib import pyplot as plt 
from numpy import arange 
import numpy 
from matplotlib import rc 

rc("figure",figsize=(15,10)) 
#rc('figure.subplot',bottom=0.1,hspace=0.1) 
rc("legend",fontsize=16) 
fig = plt.figure() 


Test_Data = numpy.random.normal(size=20) 

fig = plt.figure() 
Dimension = (2,3) 
plt.subplot2grid(Dimension, (0,0),rowspan=2) 
plt.plot(Test_Data) 
plt.subplot2grid(Dimension, (0,1),colspan=2) 
for i,j in zip(Test_Data,arange(len(Test_Data))): 
    plt.bar(i,j) 
plt.legend(arange(len(Test_Data))) 
plt.subplot2grid(Dimension, (1,1),colspan=2) 
xticks = [r"%s (%i)" % (a,b) for a,b in zip(Test_Data,Test_Data)] 
plt.xticks(arange(len(Test_Data)),xticks) 
fig.autofmt_xdate() 
plt.ylabel(r'$Some Latex Formula/Divided by some Latex Formula$',fontsize=14) 
plt.plot(Test_Data) 
#plt.setp(plt.xticks()[1],rotation=30) 
plt.tight_layout() 
#plt.show() 

Figure created by script

cevap

6

Bu aslında autofmt_xdate yöntemin bir özelliktir. autofmt_xdate yöntemin belgelerden; onları döndürmek ve onları doğru hizalamak için yararlıdır böylece

Tarihi ticklabels genellikle örtüşüyor. Ayrıca, ortak bir kullanım durumu, x ekseninin tarih verisi olduğu paylaşılan xax'lara sahip birtakım alt piksellerdir. Kene etiketleri genellikle uzun ve 'un alt altpipte onları döndürmesine ve diğer alt pikselleri kapatmasına ve ayrıca xlabels'i kapatmasına yardımcı olur.

sadece sağ alt subplot ait xticklabels döndürmek istiyorsanız

Bu ticklabels 30 derece döner

plt.setp(plt.xticks()[1], rotation=30, ha='right') # ha is the same as horizontalalignment 

kullanmak ve sağ onlara sağ alt için (autofmt_xdate kullanırken aynı sonucu) hizalar Altplot, diğer iki alt notu değiştirmeden bırakır.

İlgili konular