R语言ggplot2绘制多条折线图

R语言的ggplot2包是一个图层叠加的绘图工具,十分便捷,可实现多层次绘图,以下绘制多折线图的方式是较为推荐的一种方式。

#加载包
library(reshape2)#融合数据
library(ggplot2)#绘图工具
library(openxlsx)
#读入数据,此例中数据的格式为xlsx
mydata <- read.xlsx("M.xlsx")

在这里,数据读入之后的格式为初始格式,也就是大多数情况下我们的数据存放格式:

在这里插入图片描述
我们需要对这一数据进行融合操作:

mydata <- melt(mydata,id="Year")

按照年份对数据进行融合之后,就得到了我们绘图所要的数据:
在这里插入图片描述

我们能够看到,融合之后的数据为3列,这里的三个列名是自动生成的,year将默认为横轴title;variable将在绘图过程中默认为图例title,value将默认为纵轴title;如果需要对其进行改动,可在此处更改列名:

colnames(mydata) <- c("Year","sample","value")#更改列名

之后开始作图:

ggplot(data = mydata,aes(x=Year,y=value,group = sample,color=sample,shape=sample))+
  geom_point()+
  geom_line()+
  xlab("Year")+#横坐标名称
  ylab("数值")+#纵坐标名称
  theme_bw() +#去掉背景灰色
  theme(panel.grid.major=element_line(colour=NA),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        panel.grid.minor = element_blank(),#以上theme中代码用于去除网格线且保留坐标轴边框
        text = element_text(family = "STXihei"),#设置中文字体的显示
        legend.position = c(.075,.915),#更改图例的位置,放至图内部的左上角
        legend.box.background = element_rect(color="black"))+#为图例田间边框线
  scale_x_continuous(limits = c(2000,2018),breaks = seq(2000,2018,1))#更改横坐标刻度值
#点击zoom查看大图

最终画出的图如下:
在这里插入图片描述

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值