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