中绘制折线_ggplot2|从0开始绘制折线图

dfef104c289fe4107165e607808b4e0b.png

话说“一图胜千言”,在各类数据分析报告中经常会看见各种各样的图形,例如折线图、条形图、箱线图、点图等。

其中折线图可以反映某种现象的趋势,本文利用R语言的ggplot2包,从头带您绘制各式各样的线形图。

一 绘制单条折线图

载入数据及函数包

library(ggplot2)
df <- data.frame(dose=c("A", "B", "C"), len=c(5.16, 10.10, 30))
head(df)
 dose   len
1    A  5.16
2    B 10.10
3    C 30.00

1.1 绘制基本的折线图

ggplot(data=df, aes(x=dose, y=len, group=1)) +geom_line()

36617a0aa6c736576a2cbd06142c9278.png1.2 添加点,并更改线型 和颜色

1.2 添加点,并更改线型 和颜色

ggplot(data=df, aes(x=dose, y=len, group=1)) +geom_line(linetype = "dashed",color="red")+ geom_point()

1260d642d4bc1eaf0d99ee1a42692d93.png

1.3 添加箭头

library(grid)
ggplot(data=df, aes(x=dose, y=len, group=1))+geom_line(arrow = arrow())+geom_point()
#自定义箭头类型
myarrow=arrow(angle = 15, ends = "both", type = "closed")
ggplot(data=df, aes(x=dose, y=len, group=1)) +geom_line(arrow=myarrow)+geom_point()

a5e0e09f10d694ac9d310cce0aaf6ef8.png

注:因为横坐标的属性为因子(离散型的字符转换为因子),所以需要添加‘group = 1’的设置。

二 绘制多条折线图

设置数据

df2 <- data.frame(supp=rep(c("Case", "Control"), each=3), dose=rep(c("A", "B", "C"),2),len=c(6.8, 15, 38, 5.16, 10.10, 30))
head(df2)
     supp dose   len
1    Case    A  6.80
2    Case    B 15.00
3    Case    C 38.00
4 Control    A  5.16
5 Control    B 10.10
6 Control    C 30.00

2.1 绘制多条折线图,更改线型

ggplot(data=df2, aes(x=dose, y=len, group=supp))+
  geom_line(linetype="dashed", color="blue", size=1.2)+
  geom_point(color="red", size=3)

badbba594f402cba5ac5b94a7914bd0c.png

2.2 分组更改线型和点的形状

ggplot(df2, aes(x=dose, y=len, group=supp)) + 
geom_line(aes(linetype=supp))+ 
geom_point(aes(shape=supp))

2.3 自定义更改线型

ggplot(df2, aes(x=dose, y=len, group=supp)) + 
geom_line(aes(linetype=supp))+ 
geom_point()+ 
scale_linetype_manual(values=c("twodash", "dotted"))

36ddf3503c3824c9cfd52327882caad9.png

2.4 更改颜色

p <- ggplot(df2, aes(x=dose, y=len, group=supp)) + geom_line(aes(color=supp))+ geom_point(aes(color=supp))
p

3ce7a221d912da7b3b31047a0174aa34.png

其他自定义颜色方式:

# Use custom color palettes

p+scale_color_manual(values=c("#E69F00", "#56B4E9")) 

# Use brewer color palettes

p+scale_color_brewer(palette="Dark2") 

# Use grey scale

p + scale_color_grey() + theme_classic()

2.5 添加误差棒

利用ToothGrowth数据集,首先分组计算每一分组的均值和标准差,整理成如下格式:

  supp dose   len       sd
1   OJ  0.5 13.23 4.459709
2   OJ  1.0 22.70 3.910953
3   OJ  2.0 26.06 2.655058
4   VC  0.5  7.98 2.746634
5   VC  1.0 16.77 2.515309
6   VC  2.0 26.14 4.797731

绘制添加误差棒的折线图

ggplot(df3, aes(x=dose, y=len, group=supp, color=supp)) + 
    geom_errorbar(aes(ymin=len-sd, ymax=len+sd), width=.1) +
    geom_line() +geom_point()+
   scale_color_brewer(palette="Paired")+theme_minimal()

1c948f7782eaee0ce0234cf2c07b7907.png

注:可以使用position_dodge 参数,防止errorbars重叠

三 折线图汇总展示

#绘制添加误差棒的折线图 ggplot(df3, aes(x=dose, y=len, group=supp, color=supp)) + geom_errorbar(aes(ymin=len-sd, ymax=len+sd), width=.1) + geom_line() + geom_point()+ scale_color_brewer(palette="Paired")+theme_minimal()

1acc31cd5f3d4f097a680a7c4933dcb7.png

四 参考资料

ggplot2:数据分析与图形艺术

http://www.sthda.com/english/wiki/ggplot2-essentials

好了,就是这么简单,输出基本图形后,根据自己的喜好进行细节的调整即可。

更多关于生信 ,R ,Python的内容请扫码关注小号,谢谢。

c2a8f8e01a1a243aeae468b41045758c.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值