11

我正在使用 yhat 的ggplot 库。我有以下熊猫数据框:

   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)

这就是我得到的:

分散

但是,每当我尝试geom_bar()代替 时geom_point(),我最终只会得到 100% 的条形图。我已经尝试过 plain geom_bar()and also geom_bar(stat="percent observed"),但似乎都不起作用。这总是我得到的:

酒吧

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

试图

知道如何让酒吧部分工作(或整个事情,就此而言)?

4

1 回答 1

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()

输出看起来像:

在此处输入图像描述

于 2014-03-24T03:05:58.970 回答