作为标题,我有一个假数据:
data <-
structure(list(year = c(2010, 2011, 2012, 2010, 2011, 2012, 2010,
2011, 2012, 2010, 2011, 2012), disease = c(1, 1, 1, 2, 2, 2,
3, 3, 3, 4, 4, 4), group = c("A", "A", "A", "A", "A", "A", "B",
"B", "B", "B", "B", "B"), incidence = c(0.2, 0.3, 0.4, 0.1, 0.3,
0.2, 0.5, 0.6, 0.7, 0.8, 0.9, 0.3)), row.names = c(NA, -12L), class = c("tbl_df",
"tbl", "data.frame"))
我想画一条线以显示不同的组(disease 1
和disease 2
属于group A
并带有一种颜色,disease 3
和disease 4
属于{ {1}}和另一种颜色),但是该线绘制到年份标签而不是最后一个类别,而且我无法在group B
中设置fill
和color
:
geom_segment
任何帮助将不胜感激!
答案 0 :(得分:3)
只需将geom_line
替换为geom_segment
:
library(ggplot2)
ggplot(data) +
geom_tile(aes(x = disease, y = year, fill= incidence), color = 'black') +
geom_segment(aes(x = disease - 0.5, xend = disease + 0.5, y = 2009, yend = 2009, group = group, color = group)) +
ylab("") +
xlab("") +
xlim(c(1:4,"")) +
ylim(c(2005,2012+1)) +
annotate(x="",y=2010:2012,label=2010:2012,size=2.5,geom="text")+
theme_bw()+
theme_classic()+
theme(
axis.line = element_blank(),
axis.ticks = element_blank(),
axis.text.y = element_blank()
)