折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。 在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中的示例很相似。 一般这类图中填充区域是置信区间之类的或者准差之类的,类似误差棒图?反正很好看,以后有用还能想起来。

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: