折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。
在R中绘制折线图的方法有很多种,比如plot自带的line,今天我说的是ggplot包中的geom_line。
在绘图之前先随机构建个数据框。

rm(list = ls())
options(stringsAsFactors = F)
a=data.frame(x=rep(1:10,2),y=runif(20,1,20),
             group=c(rep('A',10),rep('B',10)),add=runif(20,1,2))

#构建一个数据框,随机生成x轴y轴的数据,为数据进行分组以及一列数据数据
在这里插入图片描述

有了数据以后可以开始绘制,用ggplot中的geom_line绘制折线图,除了geom_line还有很多绘图函数,在Rstudio中打出geom_可以看到很多,自行探索

library(ggplot2)
ggplot()+geom_line(data=a,aes(x=x,y=y,group=group,color=group),
                   lwd=1)

#data 数据
#lwd 线宽
#color 颜色由group决定
#group 分组
如下图所示,共有两个组,两条线,颜色由分组决定,但是折线图的颜色很难看。
在这里插入图片描述
进一步进行修饰

ggplot()+geom_line(data=a,aes(x=x,y=y,group=group,color=group),
                   lwd=1)+
  theme_classic()+  #classic主题
  theme(panel.background = element_rect(color='black'), #边框
        plot.margin = margin(10,5,5,5,unit = 'mm'))+    #plot页边距
  labs(x='X',y='Y')+                                    #xy轴title名
  scale_color_manual(values = c('orange','#72be64'))+   #color对应的颜色
  scale_x_continuous(expand = c(0,0))                   #去除x轴两边多余扩展空间

修饰后结果如下,可以看到改变了主题,边框,页边距,线条颜色等。
在这里插入图片描述
之前看到matplotlib官网的实例中有一种折线图(fill_between),线条周围带有填充,图片很漂亮,所以就很想用R绘制。这种图片除了绘制折线的点以外还包括high和low的两个点,这种图可以用ggplot中的geom_ribbon来实现。geom_ribbon一般为可以为线条的每个点有对应的最大值和最小值,把最大值和最小值之间进行填充就得到类似下图。意在这里插入图片描述用上边那个例子接着绘图。

ggplot()+geom_line(data=a,aes(x=x,y=y,group=group,color=group),
                   lwd=1)+
  geom_ribbon(data=a,aes(ymin=y+add, ymax=y-add, #确定每个点的ymin和ymax,add就是最开始生成的随机数那一列,实际应用中可能是你这个点对应的标准差之类的。
                         group=group,fill=group,x=x),alpha = 0.2)+
  theme_classic()+
  theme(panel.background = element_rect(color='black'),
        plot.margin = margin(10,5,5,5,unit = 'mm'))+
  labs(x='X',y='Y')+
  scale_color_manual(values = c('orange','#72be64'))+
  scale_fill_manual(values = c('orange','#72be64'))+
  scale_x_continuous(expand = c(0,0))

可以看到效果和matplotlib中的示例很相似。
在这里插入图片描述
一般这类图中填充区域是置信区间之类的或者准差之类的,类似误差棒图?反正很好看,以后有用还能想起来。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐