2012-10-15 17 views
5

İki eksenli bir çizimde onay etiketinin özelliklerini değiştirirken sorun yaşıyorum. Metnin küçük ve varsayılandan farklı bir yazı tipinde olmasını istiyorum. Ben twiny() kullanmayı denedim kadar iyi çalıştı bir yolunu buldum. İkinci eksenler, resimde görebileceğiniz gibi kene biçimlendirme talimatlarına cevap vermez. Önemli bir şeyi mi özledim yoksa matplotlib'de bir hata mı var?İkili eksenlerde onay etiketinin boyutunu ayarlama

Here the image is

Düzenleme:: kene-değişen sabit yanlış girinti

Ubuntu 12.04, Python 2.7.3, İşte 1.1.1rc

#!/usr/bin/env python 
# coding: utf-8 

from matplotlib import pyplot as p 
from numpy import sin, cos, arange 

x = arange(0, 10, .01) 

for plotnum in range(1,5): 
    p.subplot(2, 2, plotnum) 
    ax1 = p.gca() 
    p.plot(sin(x),x) 
    ax2 = p.twiny() 
    p.plot(cos(x)+plotnum,x, 'g--') 

    # Set size all tick labels 
    # Works for first axes (lower x-ticks) and can also change font 
    for tickset in [ax1.xaxis.get_major_ticks()]: 
     [(tick.label.set_fontsize(plotnum*4), tick.label.set_fontname('ubuntu mono')) for tick in tickset] 

    # Does not work for second axes (upper x-ticks) 
    for tickset in [ax2.xaxis.get_major_ticks()]: 
     [(tick.label.set_fontsize(plotnum*2), tick.label.set_fontname('ubuntu mono')) for tick in tickset] 

    # This works, but doesn't allow changing font 
    #ax2.tick_params(axis='both', which='major', labelsize=plotnum*2) 

Matplotlib bir görüntü satırlar

Düzenleme: eklenen görüntü (Thriveth)

cevap

5

Keneler Kene sınıfı belgelerine göre iki etiket (label1 ve label2) sahip olabilir:

  • 1 xticks için arsa altına gelir ve yticks
  • 2 için sol xticks için arsa üstünde ve yticks

label için sağa eder özniteliği her zaman label1 anlamına gelir.

Sen hiç AX2 hatlarını değiştirerek komut düzeltebilirsiniz

: Çünkü ll' eğer get_majorticklabels fonksiyonları hazırlayacağız

for tickset in [ax2.xaxis.get_major_ticks()]: 
    [(tick.label2.set_fontsize(plotnum*2), tick.label2.set_fontname('ubuntu mono')) 

label1 ihtiyaç veya label2 ve komut kolaylaştırır:

from matplotlib import pyplot as p 
from numpy import sin, cos, arange 

x = arange(0, 10, .01) 

for plotnum in range(1,5): 
    p.subplot(2, 2, plotnum) 
    ax1 = p.gca() 
    p.plot(sin(x),x) 
    ax2 = p.twiny() 
    p.plot(cos(x)+plotnum,x, 'g--') 
    for label in ax1.xaxis.get_majorticklabels(): 
     label.set_fontsize(plotnum * 4) 
     label.set_fontname('courier') 
    for label in ax2.xaxis.get_majorticklabels(): 
     label.set_fontsize(plotnum * 4) 
     label.set_fontname('verdana') 

Not Etiket değiştirme rutinlerini döngüde koydum! plotted tick labels

İlgili konular