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

ohn*_*lus 3 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")
Run Code Online (Sandbox Code Playgroud)

给我一个看起来像这样的条形图。 显示计数而不是值的条形图

我知道这些是计数,而不仅仅是数字,因为如果我有这些名称中的任何一个重复,该变量将显示为“2”。

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

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

如上所述,但缩放比例不同

ohn*_*lus 5

显然我需要指定

weight = 'population'
Run Code Online (Sandbox Code Playgroud)

而不是

y = 'population
Run Code Online (Sandbox Code Playgroud)

因此正确的代码是

p = ggplot(aes(x = 'color', weight = 'population'),data = patternCount) +\
geom_bar(stat='identity')
Run Code Online (Sandbox Code Playgroud)

并给出一个看起来像 行为正确的条形图

  • 太感谢了!很奇怪为什么 python 中的 ggplot 有这种行为。 (2认同)