Eksen değerlerini gizle ama matplotlib'de eksen onay etiketlerini koru


107

Bu resme sahibim:

plt.plot(sim_1['t'],sim_1['V'],'k')
plt.ylabel('V')
plt.xlabel('t')
plt.show()

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

Numaraları gizlemek istiyorum; eğer kullanırsam:

plt.axis('off')

... bu görüntüyü alıyorum:

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

Ayrıca etiketleri de gizler Vve t. Değerleri gizlerken etiketleri nasıl saklayabilirim?

Yanıtlar:


148

Matplotlib nesne yönelimli yaklaşımı kullanıyorsanız , bu ax.set_xticklabels()ve kullanarak basit bir görevdir ax.set_yticklabels():

import matplotlib.pyplot as plt

# Create Figure and Axes instances
fig,ax = plt.subplots(1)

# Make your plot, set your axes labels
ax.plot(sim_1['t'],sim_1['V'],'k')
ax.set_ylabel('V')
ax.set_xlabel('t')

# Turn off tick labels
ax.set_yticklabels([])
ax.set_xticklabels([])

plt.show()

12
Kene etiketleri kaldırma büyük İşleri, ama yine de kene işaretleri olsun ...
Andrew Schreiber

87

A olmadan subplots, keneleri evrensel olarak şu şekilde kaldırabilirsiniz:

plt.xticks([])
plt.yticks([])

46

Bu harika çalışıyor. Bunu daha önce yapıştırmanız yeterli plt.show():

plt.gca().axes.get_yaxis().set_visible(False)

Boom.


2
Teşekkürler, bu harika çalışıyor. Diğer durumlarda işaretler korunur (çünkü tik yönü varsayılan olarak dışarıdadır)
user140259

Ax.set_xticklabels ([]) gibi cevaplardan farklı olarak, bu aşağıdaki durum için mükemmel bir şekilde çalışır: biri sharex seçeneğiyle alt noktalar kullanır ve yalnızca alt noktaların biri için onay işaretlerini silmek ister.
Mikhail Lisakov

Harika! Ve ayrıca x ekseni etiketlerinden ve işaretlerinden kurtulmak için plt.gca (). Axes.get_xaxis (). Set_visible (False).
fbparis

2
veya zaten balta nesnesine ax.xaxis.set_visible(False)
sahipseniz

1
@filip yardımcı olduğuna sevindim :)
MRT

2

Bunun en iyi yol olduğundan emin değilim, ancak kesinlikle aşağıdaki gibi onay etiketlerini değiştirebilirsiniz:

import matplotlib.pyplot as plt
x = range(10)
y = range(10)
plt.plot(x,y)
plt.xticks(x," ")
plt.show()

Python 3.4'te bu, x ekseninde onay etiketleri olmayan basit bir çizgi grafiği oluşturur. Basit bir örnek burada: http://matplotlib.org/examples/ticks_and_spines/ticklabels_demo_rotation.html

Bu ilgili sorunun daha iyi önerileri de var: Matplotlib grafiklerinde eksen metninin gizlenmesi

Python'da yeniyim. Kilometreniz önceki versiyonlarda değişiklik gösterebilir. Belki başkaları yardımcı olabilir?


2

onay işaretlerini tamamen kaldırmak için şunu kullanın:

ax.set_yticks([])
ax.set_xticks([])

aksi takdirde ax.set_yticklabels([])ve ax.set_xticklabels([])onay işaretleri kalacaktır.


Denediğimde ax.set_yticks([], [])şu uyarıyı alıyorum: "MatplotlibDeprecationWarning: set_xticks () 'in minor parametresini konumsal olarak geçirmek Matplotlib 3.2'den beri kullanımdan kaldırıldı; parametre daha sonra yalnızca iki küçük sürüm olacak." Doğru alternatif nedir?
Rylan Schaeffer

@RylanSchaeffer, örneğinizde ax.set_yticks([], [])hataya neden olan 2 boş liste geçiyorsunuz . Bunu neden yapıyorsun? Komut kılavuzuna bakın. İlk argüman pozisyonel olarak iletilmemesi gereken ise anahtar kelime ile pass: ax.set_yticks(ticks=[]).
Poe Dator

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.