2012-06-26 88 views
8

下面是繪製大值的示例。使用matplotlib自動設置條形圖的y軸限制

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

y軸從0開始,所以條形圖看起來都是相同的。我知道你可以使用plt.ylim來手動設置限制,但matplotlib是否可以自動(並巧妙地)將限制設置爲合理的值(如998-1008),還可能顯示軸中斷?

回答

11

簡單代數的一點點幫助解決限制:

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() 

通過這種方式,你可以找到你的y值之間的差異,並利用它們來設置比例沿y軸。我使用math.ceil(而不是math.floor)以獲取您指定的值並確保整數。我想建議看看this example

+0

是的,這工作得很好。謝謝。 – user1473483