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 首先看数据情况:group有3组。Time有3组,数据意思是在3组3个时间点测量了某指标,现在要绘制组1、组2、组3某指标y按时间的变化趋势 数据情况: 看看最终的效果图如下: 下面是本次使用的代码 .libPat…...
[C#]winform部署官方yolov8-obb旋转框检测的onnx模型
【官方框架地址】 https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov8-obb(You Only Look Once version 8 with Oriented Bounding Boxes)是一种先进的对象检测算法,它在传统的Yolov3和Yolov4基础上进行了优化,加…...
Git中config配置
文章目录 简介一、config级别二、config基本配置 简介 Git是一个开源的分布式版本控制系统,用于处理各种规模的项目版本管理。它由Linus Torvalds设计,主要用于Linux内核开发。Git的特点包括速度、简单的设计、对非线性开发模式的支持、完全的分布式能力…...
Java开发安全之:Unreleased Resource: Streams需确保流得到释放
Overview java 中的函数 getResponseBytes() 有时无法成功释放由 getInputStream() 函数分配的系统资源。 Details 程序可能无法成功释放某一项系统资源。 在这种情况下,在某些程序路径上,所分配的资源未释放。 资源泄露至少有两种常见的原因…...
【C++】文件操作
文件操作 一、文本文件(一)写文件读文件 二、二进制文件(一)写文件(二)读文件 程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化ÿ…...
高效能方法 - 任务清单优先级
任务清单是有优先级的,首先要尽所能保证A级别的事项完成,或许不能估计B级或者C级,那这结果也是不错的。 博恩崔西在《吃掉那只青蛙》一书中指出:在你决定要做什么,并对其进行排序的时候,你首要解决那些最难…...
go 语言爬虫库goquery介绍
文章目录 爬虫介绍goquery介绍利用NewDocumentFromReader方法获取主页信息Document介绍通过查询获取文章信息css选择器介绍goquery中的选择器获取主页中的文章链接 爬取总结 爬虫介绍 爬虫,又称网页抓取、网络蜘蛛或网络爬虫,是一种自动浏览互联网并从网…...
解决 Navicat 在笔记本外接显示器分辨率自适应展示问题
前言 有时候我们使用自己的笔记本电脑会外接一个显示器,但是显示器的分辨率和笔记本又不一样,所以就会导致 Navicat 基于分辨率的问题变得字体很小。具体操作可点击这里: Navicat 分辨率调整...
网络安全产品之认识入侵检测系统
随着计算机网络技术的快速发展和网络攻击的不断增多,单纯的防火墙策略已经无法满足对安全高度敏感的部门的需要,网络的防卫必须采用一种纵深的、多样的手段。因此,入侵检测系统作为新一代安全保障技术,成为了传统安全防护措施的必…...
牛客周赛 Round 10 解题报告 | 珂学家 | 三分模板 + 计数DFS + 回文中心扩展
前言 整体评价 T2真是一个折磨人的小妖精,写了两版DFS,第二版计数DFS才过。T3是三分模板,感觉也可以求导数。T4的数据规模才n1000,因此中心扩展的 O ( n 2 ) O(n^2) O(n2)当仁不让。 A. 游游的最长稳定子数组 滑窗经典题 从某个…...
SpringBoot 更新业务场景下,如何区分null是清空属性值 还是null为vo属性默认值?
先看歧义现象 值为null 未传递此属性 所以此时如何区分null 时传递进来的的null,还是属性的默认值null? 引入方案 引入过滤器,中间截获requestBodyData并保存到HttpServletRequest,业务层从HttpServletRequest 获取到requestBodyData辅…...
【深度学习每日小知识】NLP 自然语言处理
自然语言处理 (NLP) 是人工智能 (AI) 的一个子领域,处理计算机和人类(自然)语言之间的交互。它涉及使用算法和统计模型使计算机能够理解、解释和生成人类语言。 NLP 是人工智能领域的重要工具,广泛应用于语言翻译、文本分类和聊天…...
一文理解Python选择语句
在编程领域中,条件判断和选择是非常基础而且重要的一个部分。Python 作为一种被广泛应用的编程语言,提供了多种选择语句来满足不同的条件判断需求。本文将深入探讨 Python 中的选择语句,包括 if 语句、elif 语句、else 语句、简写的条件表达式…...
MyBatis XML 映射文件中的 SQL 语句可以分为动态语句和静态语句
目录 静态查询: 动态查询: 静态更新: 动态更新: 静态删除: 动态删除: 动态语句和静态语句在 MyBatis 中的作用如下: 静态查询: 静态查询是指在 SQL 语句中执行固定的查询操作…...
Flask用于生产环境
Flask是一个用Python编写的轻量级Web应用框架,可以用于开发和部署Web服务。要安装Flask,您需要以下步骤: - 安装Python和pip,如果您还没有的话。 - 创建一个虚拟环境,以便隔离您的Flask应用程序和其他Python项目。 - …...
程序员如何向上管理,升职加薪
向上管理 多向领导展示自己的工作量。 解决完问题,可以把领导拉到群里,不然你解决了问题,领导都不知道。 积极向领导汇报,及时反馈任务进度,反馈遇到的问题。 要学会表现自己,光说不干假把式,…...
Microsoft Word 删除空行
Microsoft Word 删除空行 1. 删除空行1.1. 替换1.2. 段落标记 References 1. 删除空行 1.1. 替换 1.2. 段落标记 特殊格式 -> 段落标记 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...
基于一次应用卡死问题所做的前端性能评估与优化尝试
问题背景 在上个月,由于客户反馈客户端卡死现象但我们远程却难以复现此现象,于是我们组织了一次现场上门故障排查,并希望基于此次观察与优化,为客户端开发提供一些整体的优化升级。当然,在尝试过程中,也发…...
JVM(上)
目录 一、JVM概述 一、JVM作用 二、JVM整体组成部分 二、JVM结构-类加载 一、类加载子系统概述 二、类加载过程 1.加载 2.链接 3.初始化(类加载过程中的初始化) 三、类加载器分类 大致分两类: 细致分类: 四、双亲委派机制 五、打…...
【js】js 异步机制详解 Generator / Async / Promise
三种语法功能放在一起,是因为他们都有相似特点: 维护某种状态在未来恢复状态并执行 本文重点回答以下几个问题: 为什么 Generator 和 Async 函数的 代码执行流 都可以简化成树形结构?async 函数为什么返回一个 promise…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
