我正在尝试使用R中的ggplot2制作一些堆积的条形图,但是无论我做什么,我的图表总是以灰色结尾。
作为一个玩具示例,如果我运行以下命令:
Year <- c(2015,2015,2015,2015,2016,2016,2017,2017,2017,2017)
Class <- c(2,1,2,3,2,3,1,2,3,2)
Data <- data.frame(Year,Class)
ggplot(Data, aes(Year)) +
geom_bar(aes(fill=Class))
我得到以下(非常灰色的)图表:
我发现的每个ggplot教程都建议我应该获得更彩色的东西,看起来像堆积的条形图。有什么建议么?我是一个新手,所以很可能是我的错。
答案 0 :(得分:0)
使用stat='identity'
和每个组的计数表。然后使用position='stack'
堆叠栏,同时保留基于Class
默认stat='count'
,这意味着ggplot会计数每个值(此处为Year)出现的次数,但不考虑任何其他分组变量。 stat='identity'
表示ggplot读取值作为实际钢筋高度。
melt()
中的 reshape2
将table()
的输出重新格式化为ggplot可以读取的长格式
library(ggplot2)
library(reshape2)
Year <- c(2015,2015,2015,2015,2016,2016,2017,2017,2017,2017)
Class <- c(2,1,2,3,2,3,1,2,3,2)
Data <- data.frame(Year,Class)
Data2 <- melt(table(Data))
ggplot(mpg, aes(class)) +
geom_bar(aes(fill = drv))
ggplot(Data2, aes(x=Year, y=value)) +
geom_bar(aes(fill = as.factor(Class)), position='stack', stat='identity')