ggplot2:云雨图

2024-01-15 05:30
文章标签 ggplot2 云雨

本文主要是介绍ggplot2:云雨图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

准备工作

加载使用的包

library(tidyverse)
library(gghalves)

数据集

这里我们使用 iris 这个数据集,先看一下数据集的格式

iris 是R 语言中自带的数据集,可以在R中输入 data() 查看所有数据集

head(iris)

在这里插入图片描述

从变量的角度来说,该数据集有两个重复测量变量(被试内变量),一个被试间变量,目前的数据结构是无法直接使用ggplot绘图的,因此我们需要先将数据进行 宽转长 的操作

data <- iris %>% # 使用 pivot_longer 函数进行宽转长pivot_longer(names_to = "condition",values_to = "value", 1:4) %>% # 将生成的变量拆分成两个变量var1 和 var2mutate( var1 = case_when(condition == "Sepal.Length" ~ "Sepal",condition == "Sepal.Width" ~ "Sepal",condition == "Petal.Length" ~ "Petal",condition == "Petal.Width" ~ "Petal")) %>%   mutate( var2 = case_when(condition == "Sepal.Length" ~ "Length",condition == "Sepal.Width" ~ "Width",condition == "Petal.Length" ~ "Length",condition == "Petal.Width" ~ "Width")) # 再查看生成的数据格式
head(data)

在这里插入图片描述

绘图

考虑到数据结构共有三个变量,假定我们最想要比较的差异是Species, 因此我们将另外两个变量(var1,var2)采用分面的方式呈现

 # 绘制画布p <- ggplot(data, aes(x = var1, y = value)) +theme_bw() +facet_grid(Species~var2)
p

在这里插入图片描述

逐步添加元素


# 添加点图
p + geom_point(data = data, aes( fill = var1, color = var1),position = position_jitterdodge(jitter.width = .2, jitter.height = .1,dodge.width = 0.6), size = 3, shape = 20, alpha = 0.6)

在这里插入图片描述

# 添加箱图
p + geom_point(data = data, aes( fill = var1, color = var1),position = position_jitterdodge(jitter.width = .2, jitter.height = .1,dodge.width = 0.6), size = 3, shape = 20, alpha = 0.6) +# 同样将颜色映射到箱体上,后面的参数可用于修改箱体外观和大小geom_boxplot( aes( fill = var1, color = var1),position = position_nudge(x = 0.2), width = .1, alpha = .3, outlier.shape = NA)

在这里插入图片描述

# 添加分半小提琴图
p + geom_point(aes( fill = var1, color = var1), position = position_jitterdodge(jitter.width = .2, jitter.height = .1,dodge.width = 0.6), size = 3, shape = 20, alpha = 0.6) +geom_boxplot( aes( fill = var1, color = var1),position = position_nudge(x = -0.2), width = .1, alpha = .3, outlier.shape = NA) +# 这里我们需要用到gghalves包中的geom_half_violin 函数画分半小提琴图geom_half_violin(aes(fill = var1, color = var1) ,position = position_nudge(x = -.25), adjust = 1, trim = T, alpha = .5, colour = NA, side = "l")

在这里插入图片描述

以上的图就已经把所有基本元素都放置在画布上了,接下来就是修改绘图细节,可以按照论文发表期刊的要求修改


p + geom_point(data = data, aes( fill = var1, color = var1),position = position_jitterdodge(jitter.width = .2, jitter.height = .1,dodge.width = 0.6), size = 3, shape = 20, alpha = 0.6) +geom_boxplot( aes( fill = var1, color = var1),position = position_nudge(x = -0.2), width = .1, alpha = .3, outlier.shape = NA) +geom_half_violin(aes(fill = var1, color = var1) ,position = position_nudge(x = -.25), adjust = 1, trim = T, alpha = .5, colour = NA, side = "l")+#以下很多操作也可以通过其他的函数达到相同的目的,在这里仅举例我最常使用的## 通过*labs*函数修改坐标轴标签labs(y = "Value", x = "Location") +## 通过* coord_cartesian*函数修改坐标轴范围coord_cartesian(ylim = c(0,10))+## 通过theme函数设置图形界面### 在这部分中,theme主要是通过四个函数来完成定义的#### element_line() 定义线条#### element_text() 定义文本#### element_rect() 定义边界#### element_blank() 定义空集theme(axis.title.x = element_text(size = 15),axis.title.y = element_text(size = 15),axis.text.x = element_text(size = 12),axis.text.y = element_text(size = 12),strip.text.x = element_text(size = 12),legend.position = "none",panel.grid.major = element_blank(),panel.grid.minor = element_blank()) +## 通过 scale 系列函数自定义标度scale_fill_brewer(palette = "Dark2")+scale_color_brewer(palette = "Dark2")

在这里插入图片描述
这样,一幅简单的图就基本完成啦!

这篇关于ggplot2:云雨图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/607798

相关文章

ggplot2高效实用指南 (可视化脚本、工具、套路、配色)

作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源 ggplot2学习笔记之图形排列 R包ggseqlogo |绘制序列分析图 编者按:数据可视化是解析、理解和展示数据不可缺少的一部分。炫或不炫看个人喜好和功底,能否达意是最基本的要求---最合适的图示和配色表达最直观的含义。长文多图预警,这是关于ggplot2使用的极详细教程(190+图),是入门和晋级

R语言可视化入门——使用ggplot2将模拟结果可视化

目录 零、引言一、数据生成二、单参数的展示(不同方法和案例)三、双参数的展示(不同方法和案例)四、后期服务 零、引言 在做科研时候,往往会设计不同的案例,不同参数和不同方法来说明自己模型(方法)的可行性。但是如何将这些元素展现在一张图上就至关重要,本文主要介绍了不同案例不同方法参数下基于ggplot2系统的可视化。具体细节没有细致的讲解,感兴趣的可以自行学习。 一、数据生成

shiny + bootstrap + shinythemes + ggplot2 + sunburst 动态交互式可视化web框架搭建

利用shiny + bootstrap + shinythemes + ggplot2 + sunburst 搭建自己的交互式可视化web

ggplot2又添新神器——ggthemr助你制作惊艳美图

今天在浏览ggplot扩展插件目录的时候,又发现了一款神器——ggthemr。 这是继ggplot2的ggtheme包、RColorBrewer包之后(不算ggtech和ggsci这两个小众包)第三款ggplot配色神器。 既然是神器,那肯定功能超级强大喽,下面就讲讲它强大在哪儿~ 这个包里面提供了将近20宽完善的配色和主题风格模板。每一个模板都拥有完善的标度和主题设定(包括离散标度和连续标

ggplot2包介绍学习

分析数据要做的第一件事情,就是观察它。对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无关的绘图分离ggplot2是按图层作图ggplot2保有命令式作图的调整函数,使其更具灵活性ggplot2将常见的统计变换融入到了绘图中。ggplot的绘图有以下几个特点:第一,有明确的起始(以gg

如何用R语言ggplot2画高水平期刊散点图

文章目录 前言一、数据集二、ggplot2画图1、全部代码2、细节拆分1)导包2)创建图形对象3)主题设置4)轴设置5)图例设置6)散点颜色7)保存图片 前言 一、数据集 数据下载链接见文章顶部 处理前的数据: library(readxl)library(reshape2) # reshape2 包是 R 语言中的一个数据处理包,主要用于数据重

如何用R语言ggplot2画折线图

文章目录 前言一、数据集二、ggplot2画图1、全部代码2、细节拆分1)导包2)创建图形对象3)主题设置4)轴设置5)图例设置6)颜色7)保存图片 前言 一、数据集 数据下载链接见文章顶部 数据: library(readxl)data <- read_excel("fig3_line.xlsx", sheet = "Sheet1") 二、g

探索ggh4x包:使用ggplot2扩展包创建多功能图形

简介 ggh4x包是一个ggplot2扩展包。它提供了一些实用函数,这些函数并不完全符合“图形语法”概念——它们可能有点hacky——但仍然可以在调整ggplots时非常有用。例如,调整facet的大小、将多个美学映射到颜色以及为facet指定单独的比例尺。此外,它还是一小部分几何对象geoms、facets、位置positions、指南guides和统计信息stats。 librar

R语言入门 | 使用 ggplot2 进行数据可视化

1.0准备工作 先下好tidyverse包,并进行加载。 install.packages ( "tidyverse" ) library(tidyverse) R 包只需安装一次,但每次开始新会话时都要重新加载。 1.1 数据框  数据框是变量(列)和观测(行)的矩形集合。 下文经常使用mpg 包含了由美

R语言ggplot2包绘制散点图详解

List item R语言的ggplot包可以实现各种复杂的制图功能,本文以散点图为例,介绍ggplot2代码的使用方法。 首先,使用R内置数据attitude绘制complaints和learning的散点图。请注意ggplot2语法和R原生代码的区别。ggplot2采用图层模式,不同图层用“+”叠加。 > head(attitude,3)rating complaints privileg