读图
该图为患者的时间线图。每行代表一个病人。黄线表示在病房,而蓝色表示在ICU。红点表示出院日期。×表示采集拭子样本进行微生物群分析的时间点。可以很直观的看出患者的纵向的一个状态。
图是由简单的点和线组成,并没有太大的难点。
示例数据及作图前准备
由于作者给开源的数据设置了权限,这里就用timelineS包的life_country数据为例。
导入数据
# 导入数据并查看数据集格式 library(timelineS) #没安装过的需自行安装 data(life_country) head(life_country) str(life_country)
> head(life_country) Name Country Gender Phase Start End 1 Edward Australia Male A 1927-11-17 1948-01-22 2 James Australia Male A 1925-11-20 1944-01-16 3 Mark Australia Male A 1926-06-11 1948-10-25 4 Fred Australia Male A 1927-01-22 1950-04-06 5 Phil Australia Male A 1923-06-20 1947-12-29 6 Ava Australia Female A 1924-06-02 1944-01-25 > str(life_country) 'data.frame': 256 obs. of 6 variables: $ Name : Factor w/ 62 levels "Ah","Albert",..: 13 25 41 19 48 6 15 56 7 35 ... $ Country: Factor w/ 5 levels "Australia","China",..: 1 1 1 1 1 1 1 1 1 1 ... $ Gender : Factor w/ 2 levels "Female","Male": 2 2 2 2 2 1 1 1 1 1 ... $ Phase : chr "A" "A" "A" "A" ... $ Start : Date, format: "1927-11-17" "1925-11-20" ... $ End : Date, format: "1948-01-22" "1944-01-16" ...
绘制
library(ggplot2) library(wesanderson) #颜色需要 ggplot(life_country, aes(x=Start, y=Name, group=Name, color=Phase)) + scale_color_manual(values=wes_palette(n=5, name="Zissou1")[c(4,2,5,6)]) + #上色 geom_line(size=1) + #画线(即文献中的) geom_point(shape=15, size=0.7) +#线段末尾的点(即文献中的出院点) geom_point(aes(x=End, y=Name), color="black", size=1, shape=4) + #画点(即文献中抽样的点) theme_bw() + #主题 scale_x_date(date_breaks = "30 year")+ #横轴的时间跨度 theme(axis.text.y=element_blank(), axis.ticks.y=element_blank(), axis.title = element_text(face = "bold"), plot.title = element_text(face = "bold"), legend.title = element_text(face = "bold")) + labs(title = "", y="Name", x = "Start", colour = "Phase") ggsave(filename = "timeline.pdf", device = "pdf", width = 5, height=7) #保存为pdf
结果展示
注:由于数据的原因 "出院点"被“抽样点"覆盖了,问题不大,大家根据实际的数据绘制即可。