2012-10-23 103 views
6

我想從這樣的數據幀生成條圖:使用熊貓繪製錯誤條barplots

  Pre Post 
Measure1 0.4 1.9 

這些值是我從別的地方計算得到的中值,並且我也有自己的方差和標準偏差(也是標準誤差)。我想繪製的結果與正確的誤差條柱狀圖,但指定多個誤差值yerr產生一個例外:

# Data is a DataFrame instance 
fig = data.plot(kind="bar", yerr=[0.1, 0.3]) 

[...] 
ValueError: In safezip, len(args[0])=1 but len(args[1])=2 

如果我指定一個值(不正確),一切都很好。我怎樣才能真正給每一列提供正確的錯誤欄?

回答

6

什麼是您的數據形狀?

對於n×1的數據向量,則需要n乘2誤差向量(正誤差和負誤差):

import pandas as pd 
import matplotlib.pyplot as plt 

df2 = pd.DataFrame([0.4, 1.9]) 
df2.plot(kind='bar', yerr=[[0.1, 3.0], [3.0, 0.1]]) 

plt.show() 

enter image description here

+0

形狀是1行和2列。我用我的數據嘗試了上述內容,但仍然出錯。 – Einar

+0

你能把你的矩陣變成像上面這樣的矢量嗎?無論如何,我已經深入瞭解pandas.DataFrame.plot,並且我沒有找到一種方法來繪製矩陣數據的錯誤條。你可能不得不回到mathplotlib:[MatplotlibBarPlots](http://www.duke.edu/~ccc14/pcfb/numpympl/MatplotlibBarPlots.html) – lucasg

+0

我已經有更好的運氣,通過轉置矩陣:就像它的工作原理。 – Einar