熊猫酒吧情节错误栏

时间:2017-07-20 02:43:26

标签: python pandas bar-chart

所以我正在绘制pandas数据帧的错误栏。现在错误栏顶部有一个奇怪的箭头,但我想要的是一条水平线。例如,像这样的数字: 但现在我的错误栏以箭头而不是水平线结束。

以下是我用来生成它的代码:

plot = meansum.plot(kind='bar',yerr=stdsum,colormap='OrRd_r',edgecolor='black',grid=False,figsize=(8,2),ax=ax,position=0.45,error_kw=dict(ecolor='black',elinewidth=0.5,lolims=True,marker='o'),width=0.8)

那么我该怎么做才能让错误成为我想要的错误。 THX。

2 个答案:

答案 0 :(得分:2)

只是没有设置lolim = True,你很高兴,这是一个示例数据示例:

import pandas as pd
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
df = pd.DataFrame({"val":[1,2,3,4],"error":[.4,.3,.6,.9]})
meansum = df["val"]
stdsum = df["error"]

plot = meansum.plot(kind='bar',yerr=stdsum,colormap='OrRd_r',edgecolor='black',grid=False,figsize=(8,2),ax=ax,position=0.45,error_kw=dict(ecolor='black',elinewidth=0.5),width=0.8)
plt.show()

答案 1 :(得分:1)

使用matplotlib中的plt.errorbar可以更轻松地返回多个对象,包括caplines,其中包含您要更改的标记(lolims设置为True时自动使用的箭头pandas,请参阅docs)。

使用plot,您只需在import pandas as pd import matplotlib.pyplot as plt fig, ax = plt.subplots() df = pd.DataFrame({"val":[1,2,3,4],"error":[.4,.3,.6,.9]}) meansum = df["val"] stdsum = df["error"] plot = meansum.plot(kind='bar',yerr=stdsum,colormap='OrRd_r',edgecolor='black',grid=False,figsize=8,2),ax=ax,position=0.45,error_kw=dict(ecolor='black',elinewidth=0.5, lolims=True),width=0.8) for ch in plot.get_children(): if str(ch).startswith('Line2D'): # this is silly, but it appears that the first Line in the children are the caplines... ch.set_marker('_') ch.set_markersize(10) # to change its size break plt.show() 的子项中挖掘正确的行并更改其标记:

TypeError: Cannot read property 'transformDateToApi' of undefined

结果如下: Resulting graph