【发布时间】:2016-03-18 14:55:54
【问题描述】:
受this 问题的启发,我想创建一个 100% 堆叠面积图,其中 ggplot2 按国家/地区排序的年份显示电影。我的数据框可以检索到here。我有两个变量year 和country。我知道我的想法是否有错误,但我无法得到解决方案。
我使用的代码是:
library(reshape)
library(ggplot2)
df <- read.csv(url("https://dl.dropboxusercontent.com/u/109495328/movie_db.csv"))
ggplot(df, aes(x=Year,y=Country,group=Country,fill=Country)) + geom_area(position="fill")
我的图表如下所示:
但应该看起来像这样(示例图):
我错过了什么?
编辑:
Axeman,我不明白您是如何获得 Freq 变量的,即使您使用了更新的解决方案?
我不确定这是否有必要,或者ggplot 是否正在“自动”执行此操作,但我认为我遇到的实际问题是将上面的数据框转换为数据框,了解一个国家/地区每年出现的频率并保存它频率:
发件人:
year country
2015 US
2015 US
2014 UK
2015 UK
2014 US
.
.
.
收件人:
year country freq
2015 US 6
2015 UK 7
2014 US 10
2014 UK 2
【问题讨论】:
-
您没有很好地解释图表应该显示的内容。您的示例有一个连续的 y 轴,您的代码有一个因子为 y。还要检查
range(df$Year)。 -
在
geom_area中使用stat = "identity"和position = "stack"有帮助吗?见here for an example -
@Jaap,它不起作用。它看起来类似于我在上面显示的图形输出。 @ Axeman,我想显示与制作它们的国家相比,数据框中每年有多少部电影。我觉得我必须添加第三个变量,每行只显示
1。 Axeman,你有什么建议?