当前位置: 首页 > news >正文

R语言的ggplot2绘制分组折线图?

R绘制分组折线图.R

首先看数据情况:group有3组。Time有3组,数据意思是在3组3个时间点测量了某指标,现在要绘制组1、组2、组3某指标y按时间的变化趋势

数据情况:

看看最终的效果图如下:

下面是本次使用的代码

.libPaths()

setwd("C:/Users/12974/Desktop/百度经验/03图形绘制/03R绘制分组折线图")#设置工作空间
getwd()#加载工作空间

##导入数据
data1<-read.csv("C:/Users/12974/Desktop/百度经验/03图形绘制/03R绘制分组折线图/data.csv",
                as.is = TRUE,header = T,sep = ",", fileEncoding='utf-8')

#加载包
library(ggplot2)
library(ggsci)#画图颜色的包
#处理数据,将分类变量变为分类的
data1$group<-as.factor(data1$group)
p1<-ggplot(data = data1,
       aes(x=时间,    #x轴变量
           y=y,        #y轴变量
           group=group, #分组变量
           color=group))+
  geom_point(size=2)+
  geom_line(size=1)

#美化
p1<-p1+
  labs(x="时间",y="均值")+#坐标名称
  scale_fill_lancet()+#表示用lancet里面的颜色随机填充线条
  scale_color_lancet()+#表示用lancet里面的颜色随机填充线条
  theme_bw()+ #去掉背景灰色
  theme(panel.grid = element_blank())+ #删除背景网格
  scale_color_manual(
    values = c("1" = "#bd2628",  
               "2" = "#B09C85FF",
               "3" = "#4DBBD5FF"))

p1

#另外还可以选择组1、组2、组3其中两组作图
library(dplyr)#这个包加载了才能用下面的函数

#筛选group=1和group=2
data12<- data1 %>%
     filter(group %in% c("1", "2"))
#筛选group=1和group=3
data13<- data1 %>%
  filter(group %in% c("1", "3"))
#筛选group=2和group=3
data23<- data1 %>%
  filter(group %in% c("2", "3"))

#绘制group=1和group=2
p12<-ggplot(data = data12,
           aes(x=时间,    #x轴变量
               y=y,        #y轴变量
               group=group, #分组变量
               color=group))+
  geom_point(size=2)+
  geom_line(size=1)
#美化
p12<-p12+
  labs(x="时间",y="均值")+#坐标名称
  scale_fill_lancet()+#表示用lancet里面的颜色随机填充线条
  scale_color_lancet()+#表示用lancet里面的颜色随机填充线条
  theme_bw()+ #去掉背景灰色
  theme(panel.grid = element_blank())+ #删除背景网格
  scale_color_manual(
    values = c("1" = "#bd2628",  
               "2" = "#B09C85FF",
               "3" = "#4DBBD5FF"))

p12

#绘制group=1和group=3
p13<-ggplot(data = data13,
            aes(x=时间,    #x轴变量
                y=y,        #y轴变量
                group=group, #分组变量
                color=group))+
  geom_point(size=2)+
  geom_line(size=1)
#美化
p13<-p13+
  labs(x="时间",y="均值")+#坐标名称
  scale_fill_lancet()+#表示用lancet里面的颜色随机填充线条
  scale_color_lancet()+#表示用lancet里面的颜色随机填充线条
  theme_bw()+ #去掉背景灰色
  theme(panel.grid = element_blank())+ #删除背景网格
  scale_color_manual(
    values = c("1" = "#bd2628",  
               "2" = "#B09C85FF",
               "3" = "#4DBBD5FF"))

## Scale for colour is already present.
## Adding another scale for colour, which will replace the existing scale.

p13

#绘制group=2和group=3
p23<-ggplot(data = data23,
            aes(x=时间,    #x轴变量
                y=y,        #y轴变量
                group=group, #分组变量
                color=group))+
  geom_point(size=2)+
  geom_line(size=1)
#美化
p23<-p23+
  labs(x="时间",y="均值")+#坐标名称
  scale_fill_lancet()+#表示用lancet里面的颜色随机填充线条
  scale_color_lancet()+#表示用lancet里面的颜色随机填充线条
  theme_bw()+ #去掉背景灰色
  theme(panel.grid = element_blank())+ #删除背景网格
  scale_color_manual(
    values = c("1" = "#bd2628",  
               "2" = "#B09C85FF",
               "3" = "#4DBBD5FF"))

p23

##保存图片
ggsave(filename = "p1.png",#命名
       plot=p1,#哪张图
       units="px",
       width = 1200,#宽度
       height = 600 #高度
)

ggsave(filename = "p12.png",#命名
       plot=p12,#哪张图
       units="px",
       width = 1200,#宽度
       height = 600 #高度
)

ggsave(filename = "p13.png",#命名
       plot=p13,#哪张图
       units="px",
       width = 1200,#宽度
       height = 600 #高度
)

ggsave(filename = "p23.png",#命名
       plot=p23,#哪张图
       units="px",
       width = 1200,#宽度
       height = 600 #高度
)

http://www.lryc.cn/news/285100.html

相关文章:

  • [C#]winform部署官方yolov8-obb旋转框检测的onnx模型
  • Git中config配置
  • Java开发安全之:Unreleased Resource: Streams需确保流得到释放
  • 【C++】文件操作
  • 高效能方法 - 任务清单优先级
  • go 语言爬虫库goquery介绍
  • 解决 Navicat 在笔记本外接显示器分辨率自适应展示问题
  • 网络安全产品之认识入侵检测系统
  • 牛客周赛 Round 10 解题报告 | 珂学家 | 三分模板 + 计数DFS + 回文中心扩展
  • SpringBoot 更新业务场景下,如何区分null是清空属性值 还是null为vo属性默认值?
  • 【深度学习每日小知识】NLP 自然语言处理
  • 一文理解Python选择语句
  • MyBatis XML 映射文件中的 SQL 语句可以分为动态语句和静态语句
  • Flask用于生产环境
  • 程序员如何向上管理,升职加薪
  • Microsoft Word 删除空行
  • 基于一次应用卡死问题所做的前端性能评估与优化尝试
  • JVM(上)
  • 【js】js 异步机制详解 Generator / Async / Promise
  • 【动态规划】【数学】【C++算法】805 数组的均值分割
  • Django笔记(五):模型models
  • 一个golang小白使用vscode搭建Ununtu20.04下的go开发环境
  • 【复现】Hytec Inter HWL 2511 SS路由器RCE漏洞_25
  • Kafka系列(四)
  • 【Linux学习】进程信号
  • 机器学习没那么难,Azure AutoML帮你简单3步实现自动化模型训练
  • 数学建模实战Matlab绘图
  • TypeError the JSON object must be str, bytes or bytearray, not ‘list‘
  • 数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2Innovus)
  • 产品经理与产品运营的区别和联系