当前位置: 首页 > 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 #高度
)

相关文章:

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

R绘制分组折线图.R 首先看数据情况&#xff1a;group有3组。Time有3组&#xff0c;数据意思是在3组3个时间点测量了某指标&#xff0c;现在要绘制组1、组2、组3某指标y按时间的变化趋势 数据情况&#xff1a; 看看最终的效果图如下&#xff1a; 下面是本次使用的代码 .libPat…...

[C#]winform部署官方yolov8-obb旋转框检测的onnx模型

【官方框架地址】 https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8-obb&#xff08;You Only Look Once version 8 with Oriented Bounding Boxes&#xff09;是一种先进的对象检测算法&#xff0c;它在传统的Yolov3和Yolov4基础上进行了优化&#xff0c;加…...

Git中config配置

文章目录 简介一、config级别二、config基本配置 简介 Git是一个开源的分布式版本控制系统&#xff0c;用于处理各种规模的项目版本管理。它由Linus Torvalds设计&#xff0c;主要用于Linux内核开发。Git的特点包括速度、简单的设计、对非线性开发模式的支持、完全的分布式能力…...

Java开发安全之:Unreleased Resource: Streams需确保流得到释放

Overview java 中的函数 getResponseBytes() 有时无法成功释放由 getInputStream() 函数分配的系统资源。 Details 程序可能无法成功释放某一项系统资源。 在这种情况下&#xff0c;在某些程序路径上&#xff0c;所分配的资源未释放。 资源泄露至少有两种常见的原因&#xf…...

【C++】文件操作

文件操作 一、文本文件&#xff08;一&#xff09;写文件读文件 二、二进制文件&#xff08;一&#xff09;写文件&#xff08;二&#xff09;读文件 程序运行时产生的数据都属于临时数据&#xff0c;程序一旦运行结束都会被释放&#xff0c;通过文件可以将数据持久化&#xff…...

高效能方法 - 任务清单优先级

任务清单是有优先级的&#xff0c;首先要尽所能保证A级别的事项完成&#xff0c;或许不能估计B级或者C级&#xff0c;那这结果也是不错的。 博恩崔西在《吃掉那只青蛙》一书中指出&#xff1a;在你决定要做什么&#xff0c;并对其进行排序的时候&#xff0c;你首要解决那些最难…...

go 语言爬虫库goquery介绍

文章目录 爬虫介绍goquery介绍利用NewDocumentFromReader方法获取主页信息Document介绍通过查询获取文章信息css选择器介绍goquery中的选择器获取主页中的文章链接 爬取总结 爬虫介绍 爬虫&#xff0c;又称网页抓取、网络蜘蛛或网络爬虫&#xff0c;是一种自动浏览互联网并从网…...

解决 Navicat 在笔记本外接显示器分辨率自适应展示问题

前言 有时候我们使用自己的笔记本电脑会外接一个显示器&#xff0c;但是显示器的分辨率和笔记本又不一样&#xff0c;所以就会导致 Navicat 基于分辨率的问题变得字体很小。具体操作可点击这里&#xff1a; Navicat 分辨率调整...

网络安全产品之认识入侵检测系统

随着计算机网络技术的快速发展和网络攻击的不断增多&#xff0c;单纯的防火墙策略已经无法满足对安全高度敏感的部门的需要&#xff0c;网络的防卫必须采用一种纵深的、多样的手段。因此&#xff0c;入侵检测系统作为新一代安全保障技术&#xff0c;成为了传统安全防护措施的必…...

牛客周赛 Round 10 解题报告 | 珂学家 | 三分模板 + 计数DFS + 回文中心扩展

前言 整体评价 T2真是一个折磨人的小妖精&#xff0c;写了两版DFS&#xff0c;第二版计数DFS才过。T3是三分模板&#xff0c;感觉也可以求导数。T4的数据规模才n1000&#xff0c;因此中心扩展的 O ( n 2 ) O(n^2) O(n2)当仁不让。 A. 游游的最长稳定子数组 滑窗经典题 从某个…...

SpringBoot 更新业务场景下,如何区分null是清空属性值 还是null为vo属性默认值?

先看歧义现象 值为null 未传递此属性 所以此时如何区分null 时传递进来的的null&#xff0c;还是属性的默认值null? 引入方案 引入过滤器&#xff0c;中间截获requestBodyData并保存到HttpServletRequest&#xff0c;业务层从HttpServletRequest 获取到requestBodyData辅…...

【深度学习每日小知识】NLP 自然语言处理

自然语言处理 (NLP) 是人工智能 (AI) 的一个子领域&#xff0c;处理计算机和人类&#xff08;自然&#xff09;语言之间的交互。它涉及使用算法和统计模型使计算机能够理解、解释和生成人类语言。 NLP 是人工智能领域的重要工具&#xff0c;广泛应用于语言翻译、文本分类和聊天…...

一文理解Python选择语句

在编程领域中&#xff0c;条件判断和选择是非常基础而且重要的一个部分。Python 作为一种被广泛应用的编程语言&#xff0c;提供了多种选择语句来满足不同的条件判断需求。本文将深入探讨 Python 中的选择语句&#xff0c;包括 if 语句、elif 语句、else 语句、简写的条件表达式…...

MyBatis XML 映射文件中的 SQL 语句可以分为动态语句和静态语句

目录 静态查询&#xff1a; 动态查询&#xff1a; 静态更新&#xff1a; 动态更新&#xff1a; 静态删除&#xff1a; 动态删除&#xff1a; 动态语句和静态语句在 MyBatis 中的作用如下&#xff1a; 静态查询&#xff1a; 静态查询是指在 SQL 语句中执行固定的查询操作…...

Flask用于生产环境

Flask是一个用Python编写的轻量级Web应用框架&#xff0c;可以用于开发和部署Web服务。要安装Flask&#xff0c;您需要以下步骤&#xff1a; - 安装Python和pip&#xff0c;如果您还没有的话。 - 创建一个虚拟环境&#xff0c;以便隔离您的Flask应用程序和其他Python项目。 - …...

程序员如何向上管理,升职加薪

向上管理 多向领导展示自己的工作量。 解决完问题&#xff0c;可以把领导拉到群里&#xff0c;不然你解决了问题&#xff0c;领导都不知道。 积极向领导汇报&#xff0c;及时反馈任务进度&#xff0c;反馈遇到的问题。 要学会表现自己&#xff0c;光说不干假把式&#xff0c;…...

Microsoft Word 删除空行

Microsoft Word 删除空行 1. 删除空行1.1. 替换1.2. 段落标记 References 1. 删除空行 1.1. 替换 1.2. 段落标记 特殊格式 -> 段落标记 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

基于一次应用卡死问题所做的前端性能评估与优化尝试

问题背景 在上个月&#xff0c;由于客户反馈客户端卡死现象但我们远程却难以复现此现象&#xff0c;于是我们组织了一次现场上门故障排查&#xff0c;并希望基于此次观察与优化&#xff0c;为客户端开发提供一些整体的优化升级。当然&#xff0c;在尝试过程中&#xff0c;也发…...

JVM(上)

目录 一、JVM概述 一、JVM作用 二、JVM整体组成部分 二、JVM结构-类加载 一、类加载子系统概述 二、类加载过程 1.加载 2.链接 3.初始化&#xff08;类加载过程中的初始化&#xff09; 三、类加载器分类 大致分两类&#xff1a; 细致分类&#xff1a; 四、双亲委派机制 五、打…...

【js】js 异步机制详解 Generator / Async / Promise

三种语法功能放在一起&#xff0c;是因为他们都有相似特点&#xff1a; 维护某种状态在未来恢复状态并执行 本文重点回答以下几个问题&#xff1a; 为什么 Generator 和 Async 函数的 代码执行流 都可以简化成树形结构&#xff1f;async 函数为什么返回一个 promise&#xf…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中&#xff0c;云安全与网络安全作为信息安全的两大支柱&#xff0c;常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异&#xff0c;并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全&#xff1a;聚焦于保…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

sshd代码修改banner

sshd服务连接之后会收到字符串&#xff1a; SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢&#xff1f; 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头&#xff0c…...