ggplot geom_bar绘制的是计数而不是值,即使是stat =" identity"设置已启用

时间:2017-06-09 00:52:55

标签: python python-3.x pandas python-ggplot

我在python中使用ggplot,只是想制作一个基本的条形图。由于我不明白的原因,条形高度对应于变量名称的计数,而不是实际变量。

简单示例

pattern = pd.Series(['standard', 'woolly', 'brown', 'spotted', 'red', 'wheat', 'grey'], dtype = 'category')
population = pd.Series([12, 2, 7, 3, 2, 4,5])
patternCount = pd.DataFrame({'color':pattern, 'population':population})

ggplot(aes(x = 'attribute', y = 'population'), data = animalCounts) +\
geom_bar(stat = "identity")

给我一​​个看起来像这样的条形图。 Barplot that shows counts rather than values

我知道这些是计数,而不仅仅是第一,因为如果我有任何这些名称的副本,那么该变量显示为" 2"。

我认为我在这里犯了一些非常简单的错误。谢谢你的帮助。

编辑:根据Ron Norris的要求,这里是相同的数字,但是缩放到12而不是1。

as above but scaled differently

1 个答案:

答案 0 :(得分:4)

显然我需要指定

weight = 'population'

而不是

y = 'population

因此正确的代码是

p = ggplot(aes(x = 'color', weight = 'population'),data = patternCount) +\
geom_bar(stat='identity')

并给出一个看起来像的数字 bar chart that behaves correctly