2016-01-30 66 views
1

我有我與Python的matplotlib的幫助下繪製的數據集如下:Matplotlib設置欄的起點值

import matplotlib.pyplot as plt 
%matplotlib inline 

n_groups = 10 
fig, ax = plt.subplots() 
fig.set_size_inches(15,10) 
index = np.arange(0, n_groups * 2, 2) 
print index 
bar_width = 0.35 
opacity = 0.4 
error_config = {'ecolor': '0.3'} 

rects1 = plt.bar(index, df.Quant[0:10], bar_width, 
       alpha=opacity, 
       color='b', 
       error_kw=error_config, 
       label='Quant') 

rects2 = plt.bar(index + bar_width, df.English[0:10], bar_width, 
       alpha=opacity, 
       color='r', 
       error_kw=error_config, 
       label='English') 

rects3 = plt.bar(index + bar_width * 2, df.Logical[0:10], bar_width, 
       alpha=opacity, 
       color='g', 
       error_kw=error_config, 
       label='Logical') 

plt.xlabel('Group') 
plt.ylabel('Scores') 
plt.title('Scores by Designation') 
plt.xticks(index + bar_width, df.Designation[0:10], rotation='vertical') 
plt.legend() 

plt.tight_layout() 
plt.show() 

導致進入如下圖:

enter image description here

由於你可以看到,這些值在400點以上是不同的。我如何將圖表的範圍從400縮小到更大?

此外,我試圖在seaborn中做同樣的事情,但找不到任何示例。

+2

我對「縮小圖表範圍」的含義有些困惑。你在問如何改變y-限制嗎? (如果是這樣,請參閱'plt.ylim'或'ax.set(ylim = [ymin,ymax])')您可能還會考慮'plt.margins(x = 0.05)'將數據範圍。 –

+0

@JoeKington太棒了,是啊,那正是我想要的'ax.set'。請原諒我可憐的選詞:P –

回答

2

使用ax.set(ylim=[400, 600])可以解決問題。這裏,400是y軸的最小值,600是y軸的最大值。根據需要更改它。

我已經複製了y軸縮減的圖形的一部分。 enter image description here

+0

謝謝!是啊,因爲@JoeKington在評論中提到它,設置ax.set工作:) –

+0

順便說一句,你可以提供一個很好的圖書館來執行空間陰謀嗎?我已經嘗試了matplotlib底圖,這不是很好看,葉片只需要一個iframe。我需要更好的東西,我可以將它轉換成圖像 –

+0

不幸的是,我從來沒有做過空間陰謀。不過,你可以看看這個頁面,其中包含python [鏈接]繪圖庫列表(https://wiki.python.org/moin/NumericAndScientific/Plotting)。不過,Matplotlib是第一選擇,可能是python提供的最好選擇。但是還有很多其他的選擇。特別是,Plotly似乎是一個強有力的競爭者。我很高興知道你是否找到了更好的選擇,因爲之前我曾經遇到過Matplotlib的問題,並且過去不得不從Python切換到Java。 –