科研绘图二:箱线图(抖动散点)

2024-03-17 23:20

本文主要是介绍科研绘图二:箱线图(抖动散点),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

R语言绘图系列—箱线图+抖动散点

(二): 科研绘图一:箱线图(抖动散点)

文章目录

  • R语言绘图系列---箱线图+抖动散点
    • (二): 科研绘图一:箱线图(抖动散点)
  • 前言
  • 一、箱线图
        • 注意:
  • 二、R语言绘制
    • 1.R包载入和构建模拟数据
    • 2.使用ggplot函数绘制箱线图
    • 3.保存
  • 三、完整代码


结果展示

在这里插入图片描述

前言

当每个组的数据点相对较少时,又需要显示出各组数据的分布情况时,可以采用箱线图叠加散点图的方式来表达数据。


一、箱线图

箱形图又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因型状如箱子而得名。在各种领域也经常被使用,常见于品质管理,快速识别异常值。箱形图最大的优点就是不受异常值的影响,能够准确稳定地描绘出数据的离散分布情况,同时也利于数据的清洗。可以使用ggplot()绘制本示例的箱线图。

注意:
  • 图层叠加的先后顺序会影响绘制的结果,本示例中从底层开始的图层顺序依次为:箱线图,散点图,箭头,箱线图处于最底层。
  • 散点图需要使用抖动的方式绘制,以避免重叠,示例中横轴为分组变量,纵轴为实际关心的值,设置抖动时需避免纵轴的值被改变,所以geom_jitter函数中仅需设置width,不设置height。
  • 如果数据中存在异常点时,箱线图也会绘制出异常点,而散点图又会绘制所有的点,使得每个异常点被绘制了两次,可以通过在绘制箱线图时将异常点的颜色设定为与背景色相同即可(使其在箱线图中不可见)。

二、R语言绘制

1.R包载入和构建模拟数据

# 载入R包:
library(ggplot2)
library(latex2exp)# 构建模拟数据:
G1 <- runif(100, min = 0, max = 7)
G2 <- runif(20, min = 5, max = 7)
G3 <- runif(10, min = 1, max = 6)
G4 <- runif(15, min = 2, max = 6)
G5 <- runif(20, min = 2.2, max = 6.5)
G6 <- runif(10, min = 3.5, max = 5)
G7 <- runif(80, min = 1, max = 6)
G8 <- runif(70, min = 1, max = 5.5)
G9 <- runif(60, min = 1.5, max = 6)
G10 <- runif(200, min = 1, max = 7.2)# 合并:
data <- data.frame(Group = rep(paste0("G", 1:10), c(100, 20, 10, 15,20, 10, 80, 70,60, 200)),values = c(G1,G2,G3,G4,G5,G6,G7,G8,G9,G10))data$Group <- factor(data$Group, levels = paste0("G", 1:10))
#   Group     values
# 1    G1 2.20054387
# 2    G1 1.90207512
# 3    G1 2.74224843
# 4    G1 2.17059052
# 5    G1 4.14728737
# 6    G1 0.01258516
head(data)
模拟数据示例:
Groupvalues
1G12.20054387
2G11.90207512
3G12.74224843
4G12.17059052
5G14.14728737
6G10.01258516

2.使用ggplot函数绘制箱线图

ggplot(data, aes(Group, values))+# 箱线图:geom_boxplot(outlier.shape = NA, width = 0.6)+# 抖动散点:geom_jitter(aes(color = Group), width = 0.15, size = 1)+# 横线:geom_hline(yintercept = 4, linetype = "dashed")+# 箭头:geom_segment(aes(x = 2, y = 7.5, xend = 2, yend = 7.2),arrow = arrow(length = unit(1, "mm"))) +scale_color_manual(name = "Subtype",values = c("#fd6ab0", "#aa5700", "#f48326", "#ffd711","#9bd53f", "#00ae4c", "#00c1e3", "#007ddb","#8538d1", "#d01910"))# 文字注释:annotate("text", label = TeX("$\\textit{P} = 1.6e-06$"), size = 3, x = 2, y = 8)# 坐标轴标签:xlab("")ylab(TeX("$Log_{2}(FPKM+1)$"))# 标题:ggtitle(TeX("$\\textit{GATA3}$ gene expression in T-ALL"))# 主题:theme_classic()+theme(plot.title = element_text(hjust = 0.5))guides(color=guide_legend(override.aes = list(size=2),title.theme = element_text(face = "bold")))

3.保存

ggsave("box_plot.pdf", height = 5, width = 7)

三、完整代码

# 载入R包:
library(ggplot2)
library(latex2exp)# 构建模拟数据:
G1 <- runif(100, min = 0, max = 7)
G2 <- runif(20, min = 5, max = 7)
G3 <- runif(10, min = 1, max = 6)
G4 <- runif(15, min = 2, max = 6)
G5 <- runif(20, min = 2.2, max = 6.5)
G6 <- runif(10, min = 3.5, max = 5)
G7 <- runif(80, min = 1, max = 6)
G8 <- runif(70, min = 1, max = 5.5)
G9 <- runif(60, min = 1.5, max = 6)
G10 <- runif(200, min = 1, max = 7.2)# 合并:
data <- data.frame(Group = rep(paste0("G", 1:10), c(100, 20, 10, 15,20, 10, 80, 70,60, 200)),values = c(G1,G2,G3,G4,G5,G6,G7,G8,G9,G10))data$Group <- factor(data$Group, levels = paste0("G", 1:10))head(data)
ggplot(data, aes(Group, values))+# 箱线图:geom_boxplot(outlier.shape = NA, width = 0.6)+# 抖动散点:geom_jitter(aes(color = Group), width = 0.15, size = 1)+# 横线:geom_hline(yintercept = 4, linetype = "dashed")+# 箭头:geom_segment(aes(x = 2, y = 7.5, xend = 2, yend = 7.2),arrow = arrow(length = unit(1, "mm"))) +scale_color_manual(name = "Subtype",values = c("#fd6ab0", "#aa5700", "#f48326", "#ffd711","#9bd53f", "#00ae4c", "#00c1e3", "#007ddb","#8538d1", "#d01910"))# 文字注释:annotate("text", label = TeX("$\\textit{P} = 1.6e-06$"), size = 3, x = 2, y = 8)# 坐标轴标签:xlab("")ylab(TeX("$Log_{2}(FPKM+1)$"))# 标题:ggtitle(TeX("$\\textit{GATA3}$ gene expression in T-ALL"))# 主题:theme_classic()+theme(plot.title = element_text(hjust = 0.5))guides(color=guide_legend(override.aes = list(size=2),title.theme = element_text(face = "bold")))
ggsave("box_plot.pdf", height = 5, width = 7)

这篇关于科研绘图二:箱线图(抖动散点)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

matplotlib绘图中插入图片

在使用matplotlib下的pyplot绘图时,有时处于各种原因,需要采用类似贴图的方式,插入外部的图片,例如添加自己的logo,或者其他的图形水印等。 一开始,查找到的资料都是使用imshow,但是这会有带来几个问题,一个是图形的原点发生了变化,另外一个问题就是图形比例也产生了变化,当然最大的问题是图形占据了整个绘图区域,完全喧宾夺主了,与我们设想的只在绘图区域中占据很小的一块不相符。 经

海龟绘图简易教程|Turtle for Python

turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初源自 20 世纪 60 年代的 Logo 编程语言,之后一些很酷的 Python 程序员构建了 turtle 库,让其他程序员只需要 import turtle,就可以在 Python 中使用海龟作图。 原文链接|海龟绘图简易教程 1. 基本

GraphPad Prism 10 for Mac/Win:高效统计分析与精美绘图的科学利器

GraphPad Prism 10 是一款专为科研工作者设计的强大统计分析与绘图软件,无论是Mac还是Windows用户,都能享受到其带来的便捷与高效。该软件广泛应用于生物医学研究、实验设计和数据分析领域,以其直观的操作界面、丰富的统计方法和多样化的图表样式,成为科学研究的得力助手。 数据处理与整理 GraphPad Prism 10 支持从多种数据源导入数据,如Excel、CSV文件及数据库

MATLAB绘图基础5:MATLAB数据导入

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 5.MATLAB数据导入 5.1 从CSV文件读取数据 C S V {\rm CSV} CSV文件是一种纯文本文件,文件中的数据以逗号为分隔符进行字段分隔,每一行数据代表一条记录,每个字段在该行内通过逗号进行分隔; C S V {\rm CSV} CSV文件可以使用任何文本

WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础

3D绘图基础 四大要点 WPF中的3D绘图涉及4个要点: 视口,用来驻留3D内容3D对象照亮部分或整个3D场景的光源摄像机,提供在3D场景中进行观察的视点 一、视口 要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是Viewport3D(3D视口),它继承自FrameworkElement,因此可以像其他元素那样在XAML中使用。 Viewport3D与其他元素相

视频安防监控LntonAIServer安防管理平台抖动检测和过亮过暗检测

随着视频监控技术的发展,视频质量成为确保监控系统有效性的重要因素。LntonAIServer通过引入抖动检测与过亮过暗检测功能,进一步提升了视频监控系统的可靠性和用户体验。这些功能可以帮助及时发现并解决视频流中的质量问题,确保视频监控系统始终处于最佳工作状态。 一、抖动检测 抖动检测功能主要用于识别视频画面中是否存在不稳定或频繁晃动的情况。这种情况可能是由于摄像机安装不稳、外部振动或视频信

Day18_0.1基础学习MATLAB学习小技巧总结(18)——MATLAB绘图篇(1)

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。 参考书目:《MATLAB基础教程 (第三版) (薛山)》 之前的章节都是基础的数据运算用法,对于功课来说更加重要的内容是建模、绘图、观察数据趋势,接下来我会结合自己的使用经验,来为大家分享绘图、建模使用的小技巧。 二维图形绘制 在本章开