2012-06-26 12 views
8

Burada büyük değerler için bir grafik örneği verilmiştir.Matplotlib kullanarak çubuk grafik için y ekseni sınırlarını otomatik olarak ayarlama

import matplotlib.pyplot as plt 
x = [1,2,3,4,5] 
y = [1000, 1002, 1001, 1003, 1005] 
plt.bar(x,y) 
plt.show() 

y-ekseni, 0 ° C'de başlar, böylece çubuklar tüm eşit bir nokta. Limitleri manuel olarak ayarlamak için plt.ylim'i kullanabileceğinizi biliyorum, fakat matplotlib'in limitleri makul değerlere (998-1008 gibi) otomatik olarak (ve akıllıca) ayarlamasının ve aynı zamanda bir eksen kopuşu göstermesinin bir yolu var mı?

cevap

11

yardımcı sınırlarını çözecektir basit cebir Biraz: Bu şekilde

import matplotlib.pyplot as plt 
import math 
x = [1,2,3,4,5] 
y = [1000, 1002, 1001, 1003, 1005] 
low = min(y) 
high = max(y) 
plt.ylim([math.ceil(low-0.5*(high-low)), math.ceil(high+0.5*(high-low))]) 
plt.bar(x,y) 
plt.show() 

, size y değerleri arasındaki farkı bulmak ve Y boyunca ölçeği ayarlamak için bunları kullanabilirler eksen. Belirttiğiniz değerleri elde etmek ve tamsayı sağlamak için math.ceil'i (math.floor'un aksine) kullandım.

Bir eksen kesintisi olduğu sürece, this example'a bakmanızı öneririm.

+0

Evet, bu oldukça iyi çalışıyor. Teşekkürler. – user1473483

İlgili konular