使用pandas dataframe绘制误差线

cetgtptt  于 2023-06-20  发布在  其他
关注(0)|答案(2)|浏览(117)

我相信这相对容易,但我似乎不能使它工作。我想用matplotlib模块绘制这个df,以date作为x轴,gas作为y轴,std作为误差条。我可以使用pandas Package 器让它工作,但是我不知道如何设置错误条的样式。
使用pandas matplotlib Package 器
我可以使用matplotlib pandas Package 器trip.plot(yerr='std', ax=ax, marker ='D')绘制误差条,但我不确定如何访问误差条以像在matplotlib中使用plt.errorbar()那样设置它们的样式
使用Matplotlib

fig, ax = plt.subplots()
ax.bar(trip.index, trip.gas, yerr=trip.std)

plt.errorbar(trip.index, trip.gas, yerr=trip.std)

上面的代码抛出错误TypeError: unsupported operand type(s) for -: 'float' and 'instancemethod'
所以基本上,我希望得到的帮助是使用标准matplotlib模块而不是pandas Package 器绘制错误条。
DF ==

date       gas       std
0 2015-11-02  6.805351  7.447903
1 2015-11-03  4.751319  1.847106
2 2015-11-04  2.835403  0.927300
3 2015-11-05  7.291005  2.250171
enxuqcxy

enxuqcxy1#

std是 Dataframe 上的一个方法,例如df.std()
使用

plt.errorbar(trip.index, trip['gas'], yerr=trip['std'])

或者如果您有mpl1.5.0 +

plt.errorbar(trip.index, 'gas', yerr='std', data=trip)
t0ybt7op

t0ybt7op2#

import pandas as pd
from datetime import date
import matplotlib.pyplot as plt

# sample dataframe
data = {'date': [date(2015, 11, 2), date(2015, 11, 3), date(2015, 11, 4), date(2015, 11, 5)],
        'gas': [6.805351, 4.751319, 2.835403, 7.291005], 'std': [7.447903, 1.847106, 0.9273, 2.250171]}
trip = pd.DataFrmae(data)

# plot the dataframe with error bars
ax = trip.plot(kind='bar', x='date', y='gas', yerr='std', rot=0)

fig, ax = plt.subplots()
ax.bar(trip['date'], trip['gas'], yerr=trip['std'])
fig, ax = plt.subplots()
ax.bar('date', 'gas', yerr='std', data=trip)

trip

date       gas       std
0  2015-11-02  6.805351  7.447903
1  2015-11-03  4.751319  1.847106
2  2015-11-04  2.835403  0.927300
3  2015-11-05  7.291005  2.250171

相关问题