【发布时间】:2020-10-13 00:03:24
【问题描述】:
我有一个值如下的熊猫数据框 (df):
0 1 2
0 100.000000 100.000000 100.000000
1 0.412497 0.668880 136.019498
2 5.144450 77.323610 163.496773
3 31.078457 78.151325 146.772621
我还有一个数据框 (deviation),其中每个值都有错误:
0 1 2
0 0.083579 0.048520 0.082328
1 0.005855 0.005904 0.046494
2 0.009907 0.080799 0.083671
3 0.045831 0.075932 0.044581
我已经成功地按照我的意愿使用 matplotlib 绘制 df:
但是,我正在努力将误差线放到此图表上。我的绘图代码目前如下:
drugCount = 3
df = pd.DataFrame(drug)
deviation = pd.DataFrame(deviation)
df.columns = list(string.ascii_uppercase[0:drugCount])
ax = df.T.plot(kind='bar', yerr=deviation, color=['C0', 'C3', 'C1', 'C2'])
plt.xlabel('Drug')
plt.ylabel('% Cell viability')
plt.legend(labels=['Control', 'High', 'Medium', 'Low'])
plt.title('Viability of HeLa cells against various drugs')
plt.show()
如您所见,我正在尝试将 deviation 数据帧传递给 yerr 标志,但它没有执行任何操作,并且出现错误:
/usr/local/lib/python3.8/site-packages/numpy/core/_asarray.py:83: UserWarning: Warning: converting a masked element to nan.
return array(a, dtype, copy=False, order=order)
我在网上看过,但似乎没有多少人像我一样尝试添加这么多错误栏。我需要进行哪些更改才能使其正常工作?
【问题讨论】:
-
既然不能指定单独的数据框,不如如下组合起来。
df = pd.concat([df.T, deviation.T],axis=1) -
@r-beginners 不错的建议,但我将如何在梳理后绘制数据?
-
我尝试将它们结合起来,但还有一个根本性的问题。它的误差线太低而没有意义。此外,
yerr=[val,val,val]无法设置多个错误栏,所以我放弃了回答。
标签: python pandas dataframe matplotlib