如何用R语言ggplot2画折线图

news2024/11/20 20:23:39

文章目录

  • 前言
  • 一、数据集
  • 二、ggplot2画图
    • 1、全部代码
    • 2、细节拆分
      • 1)导包
      • 2)创建图形对象
      • 3)主题设置
      • 4)轴设置
      • 5)图例设置
      • 6)颜色
      • 7)保存图片


前言

在这里插入图片描述


一、数据集

数据下载链接见文章顶部

数据:

在这里插入图片描述

library(readxl)

data <- read_excel("fig3_line.xlsx", sheet = "Sheet1")

二、ggplot2画图

1、全部代码

library(ggplot2)

pic =
    ggplot(data, aes(x = x, y = y, group = Species, color = Species)) +
    geom_line(linewidth = 1.5) +
    # 主题设置
    theme_classic() +
    # 轴设置
    theme(axis.text = element_text(size = 20)) +
    theme(axis.title = element_text(size = 22)) +
    coord_cartesian(xlim = c(0, 10)) +
    ylab("Percent") +
    xlab("Production") +
    scale_y_continuous(labels = scales::percent) +
    scale_x_continuous(breaks = seq(0, 10, by = 2)) +
    # 图例设置
    theme(legend.title = element_blank()) +
    theme(legend.text = element_text(size = 18, face = "italic")) + 
    theme(legend.position = c(.68, .78)) +
    # 颜色
    scale_color_manual(values = c('#73c0de', '#5470C6', '#3ba272', '#fac858', '#ee6666', '#fc8452', '#9a60b4', '#ea7ccc'))

jpeg(filename = "test3.png", width = 3300, height = 3000, res = 600, quality = 100)
pic
dev.off()

2、细节拆分

1)导包

library(ggplot2)

2)创建图形对象

pic =
    ggplot(data, aes(x = x, y = y, group = Species, color = Species)) +
    geom_line(linewidth = 1.5)
  • 设置 x 轴为列 x,y 轴为列 y,按物种类型为线条着色。
  • geom_line 用于绘制线图,并通过 linewidth = 1.5 参数设置线条的宽度为1.5个单位(毫米)。在老版本的 ggplot2 中是通过 size 参数调整线宽的,即 size = 1.5,而在新版本中,推荐用 linewidth 替换 size。

3)主题设置

theme_classic()
  • theme_classic 指定经典主题。

4)轴设置

theme(axis.text = element_text(size = 20)) +
theme(axis.title = element_text(size = 22)) +
coord_cartesian(xlim = c(0, 10)) +
ylab("Percent") +
xlab("Production") +
scale_y_continuous(labels = scales::percent) +
scale_x_continuous(breaks = seq(0, 10, by = 2)) +
  • 设置轴刻度字号20,轴标题字号22。
  • coord_cartesian(xlim = c(0, 10)) 用于限制 x 轴坐标轴的范围,只显示从0到10的区间。这意味着即使数据中存在超出这个范围的值,图形也只会显示在这个范围内。该函数与xlim(0, 10)的区别是:xlim 函数会先删除超出范围的数据点再绘制;而 coord_cartesian 函数会用所有的点绘制,但只展示 y∈[0,10] 区间的图像。在本图中用这两个函数绘制效果没有区别,但在绘制箱线图时,这两个函数绘制的图中中位数和四分位点可能截然不同。
  • xlab 设置 x 轴标题,ylab 设置 x 轴标题。
  • scale_y_continuous() 函数用于设置y轴的连续型变量的比例尺。
    labels = scales::percent 表示将y轴的标签格式化为百分比形式,即将数值乘以100并加上百分号符号。
  • scale_x_continuous() 函数用于设置x轴的连续型变量的比例尺。
    breaks = seq(0, 10, by = 2) 表示设置x轴刻度的位置。在这个例子中,刻度位置从0开始,每隔2个单位设置一个刻度,一直到10。

5)图例设置

theme(legend.title = element_blank()) +
theme(legend.text = element_text(size = 18, face = "italic")) + 
theme(legend.position = c(.68, .78))
  • 设置图例标题为空。
  • 设置图例字体为18号斜体。
  • .68 和 .78 即 0.68 和 0.78,表示图例中心点位置相对于整个图表的坐标系的百分比。

6)颜色

scale_color_manual(values = c('#73c0de', '#5470C6', '#3ba272', '#fac858', '#ee6666', '#fc8452', '#9a60b4', '#ea7ccc'))
  • 分别为每个物种类别的线条指定颜色。

7)保存图片

jpeg(filename = "test3.png", width = 3300, height = 3000, res = 600, quality = 100)
pic
dev.off()
  • jpeg 函数打开了一个JPEG设备,设定了图片的保存路径为 “test3.png”,图片的宽度为3300像素,高度为3000像素,分辨率为600 dpi,图片质量为100%。
  • pic 是之前生成的图形对象。
  • dev.off() 关闭了之前打开的图形设备,保存了图片到指定路径。这是在完成图片保存后必须执行的步骤,以确保保存的图片被正确地输出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS Stream 9 磁盘扩容

当Linux系统磁盘被占满且资料无法删除&#xff0c;需要新添加磁盘&#xff0c;并将新磁盘扩容到相应的满载磁盘中 查看现有磁盘分区 [rootwcg-lvm-001 ~]# fdisk -l Disk /dev/sda&#xff1a;180 GiB&#xff0c;193273528320 字节&#xff0c;377487360 个扇区 磁盘型号&am…

数据的加密解密——https协议

回顾http协议&#xff1a; http协议发送的请求或者响应里的2正文数据是不做任何加密的&#xff0c;数据是裸的&#xff08;原数据是什么样&#xff0c;发送过去的护具就是怎么样&#xff09;&#xff0c;但是在客户端到服务器之间是要通过中间运营商&#xff0c;路由器等中间人…

从初级到专业级,百度打破了AI的天花板

文&#xff5c;王一粟、艺思 大模型爆火一年&#xff0c;超级应用在哪里&#xff1f; 相比在ChatGPT问世时&#xff0c;人们对于“AI问答产品”寄予的超高期待&#xff0c;AI在办公场景中率先展现出来的能量&#xff0c;超出了所有人的预期。 6月7日&#xff0c;“AI产品榜”…

mmdetection使用未定义backbone训练

首先找到你需要用到的 backbone&#xff0c;一般有名的backbone 都会在github有相应的代码开源和预训练权重提供 本文以mobilenetv3 fastercnn 作为举例&#xff0c;在mmdetection中并未提供 mobilenetv3&#xff0c;提供的仅有 mobilenetv2&#xff1b; 在github上找到 mobil…

【设计模式】结构型-桥接模式

当抽象与实现&#xff0c;各自独立&#xff0c; 桥接模式&#xff0c;如彩虹桥&#xff0c;连接两岸。 文章目录 一、类爆炸与代码重复二、桥接模式三、桥接模式的核心组成四、运用桥接模式五、桥接模式的应用场景六、小结推荐阅读 一、类爆炸与代码重复 场景假设&#xff1a…

C++第二十六弹---stack和queue的基本操作详解与模拟实现

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1. stack的介绍和使用 1.1 stack的介绍 ​1.2 stack的使用 1.3 stack 模拟实现 2. queue的介绍和使用 2.1 queue的介绍 2.2 queue的使用 2…

5.31.15 使用图像到图像转换和 YOLO 技术对先前的乳房 X 光检查结果中的异常进行早期检测和分类

在本研究中&#xff0c;我们研究了基于 You-Only-Look-Once (YOLO) 架构的端到端融合模型的有效性&#xff0c;该模型可同时检测和分类数字乳房 X 光检查中的可疑乳腺病变。包括四类病例&#xff1a;肿块、钙化、结构扭曲和正常&#xff0c;这些病例来自包含 413 个病例的私人数…

一次曝 9 个大模型,「字节 AI」这一年都在做什么?

字节跳动的大模型家族&#xff0c;会长出下一个抖音吗&#xff1f; 整个 2023 年&#xff0c;字节并没有对外官宣其内部自研的大模型。外界一度认为&#xff0c;大模型这一技术变革&#xff0c;字节入场晚了。梁汝波在去年底的年会上也提到了这一点&#xff0c;他表示「字节对…

【全开源】露营地管理系统小程序源码(ThinkPHP+FastAdmin+UniApp)

专为露营业务设计开发小程序应用。平台拥有多角色管理&#xff0c;同时具有营位预定、门票购买等功能模块。 &#x1f525;露营地管理系统小程序&#xff1a;轻松掌控你的露营帝国&#x1f3d5;️ &#x1f4cc;一、引言&#xff1a;露营地管理的新时代 随着露营文化的兴起&a…

❤vue2项目webpack打包的优化策略

❤ vue2项目webpack打包的优化策略 &#xff08;优化前&#xff09; 现在我们的打包时间为&#xff1a; >打包体积大小为&#xff1a; 1、去除开发环境和生产环境提示以及日志 开发环境和生产环境的打印处理 生产环境去除console.log打印的两种方式 通过环境变量控制co…

知识图谱的应用---社交网络

文章目录 社交网络典型应用 社交网络 社交网络已成为发展最快的互联网应用&#xff0c;社交网络用户不仅仅是信息的接受者&#xff0c;也成为了信息的制造、加工和传播者&#xff0c;通过关注、被关注的方式形成了一张张庞杂繁复的用户关系网。随着社交网络中用户及信息急速增长…

数新网络签单国泰君安:利用数据服务平台提升金融业务用数能力

近日&#xff0c;数新网络与国泰君安证券股份有限公司&#xff08;以下简称“国泰君安”&#xff09;达成了数据服务平台升级项目的签约。这一项目的推进将更好地服务于国泰君安内部业务部门的数据需求&#xff0c;帮助数据平台更加有效地实现提升业务响应效率的目标&#xff0…

【Linux文件篇】系统文件、文件描述符与重定向的实用指南

W...Y的主页 &#x1f60a; 代码仓库分享&#x1f495; 前言&#xff1a;相信大家对文件都不会太陌生、也不会太熟悉。在没有学习Linux操作系统时&#xff0c;我们在学习C或C时都学过如何去创建、打开、读写等待文件的操作&#xff0c;知道一些语言级别的一些接口与函数。但…

怎样把便签里的内容移到桌面?桌面便签软件使用方法

每次打开电脑&#xff0c;我总是被满屏的文件和图标弄得眼花缭乱。那些记录在各式各样便签里的重要事项&#xff0c;经常被埋没在这信息的海洋中&#xff0c;找起来真是头疼。想必很多人都有过这样的困扰&#xff1a;如何在繁杂的桌面环境中&#xff0c;一眼就看到自己需要提醒…

问题:以下被纳入代理资产风险分类管理的业务包括() #媒体#知识分享

问题&#xff1a;以下被纳入代理资产风险分类管理的业务包括&#xff08;&#xff09; A&#xff0e;非标准化理财投资业务 B&#xff0e;特定债权投资业务 C&#xff0e;委托债权代理业务 D&#xff0e;非标准化代理销售业务 参考答案如图所示

HTML静态网页成品作业(HTML+CSS)—— 兰蔻化妆品网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

NAT

文章目录 1.NAT是什么2.NAT功能3.NAT优缺点4.NAT作用工作原理5.NAT 静态 动态5.1静态静态配置1.全局模式下设置静态NAT2.接口上设置静态NAT 5.2动态动态配置测试 6.PAT多路复用 PAT NAPT Easyip NAT server6.1PAT端口多路复用PAT作用 1.NAPT配置测试 2.EasyIp配置测试 3.NAT se…

Fegin如何传参form-data文件

Form-data传输file参数&#xff0c;这个大家都比较清楚&#xff0c;那么针对于Fegin参数file参数该如何操作呢&#xff01;下面截图来找到对应的参数关系。 一、之前我们在postMan中是这种传参的&#xff0c;那么如果使用Feigin来传输文件File 二、在Fegin中传form-data参数&a…

Qt系统相关

本文目录 1.Qt事件事件的处理标签事件鼠标事件滚轮事件按键事件定时器事件窗口事件事件派发器 2.Qt文件操作QFile的基本使用 3.Qt多线程使用线程线程锁connect的第五个参数 条件变量和信号量 4.Qt网络编程UDP SocketTCP SocketQTcpServerQTcpSocket HTTP的编写 5.QT多媒体播放音…

【区块链】深入解析Proof of Work (PoW): 区块链技术的核心驱动力

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 深入解析 Proof of Work (PoW): 区块链技术的核心驱动力引言一、PoW基本概念1.1…