首页 > 其他分享 >如何用R语言ggplot2画折线图

如何用R语言ggplot2画折线图

时间:2024-06-10 11:34:03浏览次数:12  
标签:10 scale 语言 text theme ggplot2 设置 折线图 size

文章目录


前言

在这里插入图片描述


一、数据集

数据下载链接见文章顶部

数据:

在这里插入图片描述

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() 关闭了之前打开的图形设备,保存了图片到指定路径。这是在完成图片保存后必须执行的步骤,以确保保存的图片被正确地输出。

标签:10,scale,语言,text,theme,ggplot2,设置,折线图,size
From: https://blog.csdn.net/BingJH2018212666/article/details/139573914

相关文章

  • 读AI未来进行式笔记03自然语言处理技术
    1. AI伙伴1.1. 作为AI能力的集大成者,AI伙伴融合了各种复杂的AI技术1.2. 人类唯一可能超越AI的领域,只可能在机器无法触及之处,那是属于人类感性与直觉的领域1.3. 要读懂人类,需要漫长而平缓的学习过程1.4. AI塑造了我们,我们反过来也塑造了AI1.5. AI的“思考模式”与人......
  • 如何学好一门计算机语言
    我想进入安卓逆向的学习了。则我必然要学很多新的语言,java,kotlin,c++/c,smali等等。那我必须要弄明白:1.学一门语言,到底要学什么东西?2.达到什么标准,算是学好了。要学语言的基础语法,比如运算,变量,常量,循环,分支,函数等,具体的写法。要学语言的特征,每种语言应该都有其特点的,要清楚其......
  • 46.django - 多语言配置
    1.Django多语言基础知识多语言站点可以让不同语言的用户更好地使用和理解网站内容,提升用户体验和覆盖范围。为了实现多语言功能,我们将使用Django内置的国际化和本地化支持。我收集了一些知识点整理在这一部分,感兴趣的可以看看。直接跳过此部分也行。也可以看看官方文档:翻译......
  • MySQL数据库定义语言和操作语言
    目录前言一、数据定义语言(DDL)1.1 create1.1.1创建数据库1.1.2创建表1.2alter1. 2.1修改数据库1.2.2修改表1.3drop1.3.1删除数据库1.3.2删除表二、数据操作语言(DML)2.1insert2.2delete2.3update2.4select三、总结前言        MySQL数据库......
  • 【C语言从入门到入土】第四章数组
    第四章数组———————-数组的引入你所有的压力,都是因为你太想要了,你所有的痛苦,都是因为你太较真了。有些事不能尽你意,就是在提醒你改转弯了。如果事事都如意,那就不叫生活了,珍惜所有不期而遇,看淡所有的不辞而别。文章目录第四章数组4.1如何定义一个数组1.相同......
  • c语言基础篇A
    A1.程序和程序设计语言程序程序=算法+数据结构+程序设计方法+语言工具和环境数据结构:数据的类型和数据的组织形式算法:对数据操作的方法和步骤程序设计语言的种类第一代语言:机器语言第二代语言:汇编语言第三代语言:高级语言——面向过程语言——面向对象语言第四代语言:非......
  • c语言基础篇B
    B1.数据的输入与输出c语言本身不提供输入输出语句,输入和输出操作是由c函数库中的函数来实现的在使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中include"stdio.h"或者includeB2.printf()函数(格式输出函数)函数作用:输出若干个任意类型的数......
  • 零基础非科班也能掌握的C语言知识19 动态内存管理
    动态内存管理1.为什么要有动态内存分配2.malloc和free2.1malloc2.2free3.calloc和realloc3.1calloc3.2realloc4.常见的动态内存的错误4.1对NULL指针的解引用操作4.2对动态开辟空间的越界访问4.3对非动态内存开辟的空间free4.4使用free释放⼀块动态开辟内存的⼀部分4......
  • 实验6 C语言结构体、枚举应用编程
    #defineN3//运行程序输入测试时,可以把这个数组改小一些输入测试#include<stdlib.h>typedefstructstudent{intid;//学号charname[20];//姓名charsubject[20];//考试科目doubleperf;//平时成绩......
  • 数据结构严蔚敏版精简版-线性表以及c语言代码实现
    线性表、栈、队列、串和数组都属于线性结构。线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他每个数据元素都有一个前驱和后继。1 线性表的定义和特点如此类由n(n大于等于0)个数据特性相同的元素构成的有限序列称为线性表。线性表中元素的个数n定......