Alt grafiklerde Python xticks


84

Tek bir imshowarsa çizersem kullanabilirim

fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24],  [5, 15, 25] )

xtick etiketlerimi değiştirmek için.

Şimdi, imshowkullanarak 12 arsa çiziyorum

f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)

Xticksimi bu alt grafiklerden biri için nasıl değiştirebilirim? İle sadece altplotların eksenlerine erişebiliyorum axarr[i, j]. pltYalnızca belirli bir alt alan için nasıl erişebilirim ?

Yanıtlar:


164

İki yol var:

  1. Alt çizim nesnesinin eksen yöntemlerini kullanın (örneğin ax.set_xticksve ax.set_xticklabels) veya
  2. plt.scaPyplot durum makinesi (yani pltarayüz) için geçerli eksenleri ayarlamak için kullanın .

Örnek olarak (bu aynı zamanda setptüm alt alanların özelliklerini değiştirmek için kullanmayı gösterir):

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=3, ncols=4)

# Set the ticks and ticklabels for all axes
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'],
        yticks=[1, 2, 3])

# Use the pyplot interface to change just one subplot...
plt.sca(axes[1, 1])
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red')

fig.tight_layout()
plt.show()

görüntü açıklamasını buraya girin


Hangi sürümü kullanıyorsunuz? Ben alıyorum AttributeError: Unknown property xtickslabelsiçinplt.setp(ax, xtickslabels=xticks)
Frederick Nord

20

Aşağıdaki çözümün önerildiği matplotlib deposundaki (oldukça) son cevaba bakın :

  • Xticklabels'ı ayarlamak istiyorsanız:

    ax.set_xticks([1,4,5]) 
    ax.set_xticklabels([1,4,5], fontsize=12)
    
  • Varsayılan değerleri ve konumları kullanarak (kişisel olarak sıklıkla ihtiyaç duyduğum ve çok kullanışlı bulduğum bir şey) yalnızca xticklabels yazı tipi boyutunu artırmak istiyorsanız:

    ax.tick_params(axis="x", labelsize=12) 
    
  • Hepsini aynı anda yapmak için:

    plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold", 
             horizontalalignment="left")`
    
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.