我目前有一些数据基本上是一个因素和一个日期。这是它的一个简化概念。
date <- c(1901,1901,1901,1902,1902,1902,1901,1903,1902,1904,1902,1903,1903,1904,1905, 1901,1903,1902,1904,1902,1902,1903,1904,1902,1902,1901,1903,1903,1904,1905, 1905,1906,1907,1908,1901,1908,1907,1905,1906,1902,1903,1903,1903,1904,1905,1901,1901,1901,1902,1902,1902,1901,1903,1902,1904,1902,1903,1903,1904,1905,
1901,1903,1902,1904,1902,1902,1903,1904,1902,1902,1901,1903,1903,1904,1905,
1905,1906,1907,1908,1901,1908,1907,1905,1906,1902,1903,1903,1903,1904,1905,
1905,1906,1907,1908,1901,1908,1907,1920,1920,1920,1921,1921,1921,1921,1921)
genre <- sample(c("fiction","nonfiction"),105,replace=TRUE)
data <- as.data.frame(cbind(date,genre))
# I know this is not an ideal way to coerce to a numeric
data$date <- as.numeric(as.character(data$date))
到目前为止,还不错。但是,如果您绘制它,您会注意到,数据中存在很大的差距,被线条遮挡了。这个情节将说明。
library(ggplot2)
ggplot(data,aes(x=date,color=genre)) + geom_line(stat='count')
我看过this post这建议添加一个组,我可以这样做。
data$group <- ifelse(data$date < 1910,1,2)
ggplot(data,aes(x=date,color=genre,group=group)) + geom_line(stat='count')
所以似乎没有办法保留我想要的输出颜色美感和指定一个组
,同时使用stat='计数'
。例如,该图很好地显示了数据中的差距,但失去了基于 genre
因素的颜色/区别:
ggplot(data,aes(x=date,color=genre,group=group)) + geom_line(stat='count')
那么,这不可能吗?我错过了什么吗?有没有更好的方法来做到这一点,或者我是否需要总结
或以其他方式改变我的日期,这样我就不会在绘图时依赖stat='count'
阶段?
最佳答案
您可以将“genre”和“group”组合起来用作您的group
变量。在这里,我通过 interaction
函数执行此操作。
ggplot(data,aes(x = date, color = genre, group = interaction(genre, group))) +
geom_line(stat = 'count')
关于r - 使用 stat ='count' 时使用 ggplot (geom_line) 分隔线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46286267/