如何在python ggplot中创建条形图?

时间:2014-03-24 01:18:57

标签: python pandas python-ggplot

我正在使用yhat ggplot library。我有以下pandas DataFrame:

   degree  observed  percent observed  expected  percent expected
0       0         0               0.0         0          0.044551
1       1         1               0.1         1          0.138604
2       2         3               0.3         2          0.215607
3       3         4               0.4         2          0.223592
4       4         1               0.1         2          0.173905
5       5         1               0.1         1          0.108208

目前,我正在执行以下操作(函数第一行第一行中返回的df是上面的DataFrame):

def chartObservedExpected(graph):
    df = observedExpected(graph)
    return ggplot(aes(x='degree', y='percent observed'), data=df) + \
           geom_point() + \
           ylim(-0.015,1.015) + \
           xlim(-0.05,max(df['degree']) + 0.25) + \
           labs("Degree","Proportion of Total") + \
           ggtitle("Observed Node Degree Distribution")

chartObservedExpected(G)

这就是我得到的:

scatter

但是,每当我尝试geom_bar()而不是geom_point()时,我最终只会有100%的条形码。我尝试过简单geom_bar()geom_bar(stat="percent observed"),但似乎都没有效果。这总是我得到的:

bar

我要做的是模仿/复制以下内容:

attempt

任何想法如何使酒吧部分工作(或整个事情,就此而言)?

1 个答案:

答案 0 :(得分:24)

使用weight,这是一个例子:

from ggplot import *
import pandas as pd
df = pd.DataFrame({"x":[1,2,3,4], "y":[1,3,4,2]})
ggplot(aes(x="x", weight="y"), df) + geom_bar()

输出如下:

enter image description here