我在ggplot2上苦苦挣扎,并希望通过示例学习更多。
我有很多数据看起来像这样生成的东西:
data.frame(version=c('v1', 'v1', 'v1', 'v1', 'v2', 'v2', 'v2', 'v2'),
platform=c('linux', 'linux', 'mac', 'mac',
'linux', 'linux', 'mac', 'mac'),
type=c('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b'),
count=floor(runif(8, 0, 10000)))
我定期barplot
为我绘制一个给定操作系统的堆积条形图(通过用cast
切片,但是我还没有得到我想要的ggplot2。
我可以设法通过这样的方式绘制单个平台(假设上面的内容保存为sample
):
qplot(version, a, data=cast(sample[sample$platform=='linux',],
version ~ type, value="count"),
geom='bar')
理想情况下,我希望按类型堆叠(在此示例中显式为a
- 只有两种类型)然后每个平台有一个并排显示在按版本分组的同一图表上
也就是说,对于每个版本,我都想要三个条形图(每个平台一个条形图),每个条形图有两个堆栈(按类型)。
答案 0 :(得分:6)
这是一个选项:
dat <- data.frame(version=c('v1', 'v1', 'v1', 'v1', 'v2', 'v2', 'v2', 'v2'),
platform=c('linux', 'linux', 'mac', 'mac',
'linux', 'linux', 'mac', 'mac'),
type=c('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b'),
count=floor(runif(8, 0, 10000)))
ggplot(data = dat, aes(x = platform, y = count)) +
facet_wrap(~version) +
geom_bar(aes(fill = type))
产生类似这样的东西:
您的示例数据只有两个平台,所以也许这只是一个错字,因为您引用了三个。