跟着PC学作图 | 小提琴图+Tufte箱形图+折线图的绘制教程

2023-11-10 18:10

本文主要是介绍跟着PC学作图 | 小提琴图+Tufte箱形图+折线图的绘制教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、 数据

本期教程是基于ggplot()绘制,数据类型也符合ggplot()函数类型即可。

本期,直接使用的文章中的数据。

二、绘图

导入相关包

library(ggplot2)
library(tidyverse)
library(reshape)
library(agricolae)library(ggthemes)

导入数据

diam <- read.csv("inputdata.csv", header = TRUE, sep = ',', stringsAsFactors=FALSE)
head(diam)

数据整理

此步更具自己数据需求操作

### Add groups to the data
diam$Groups <- paste(diam$Species,diam$CO2,diam$Day,sep="_")
diam$Groups <- factor(diam$Groups,levels = unique(gtools::mixedsort(diam$Groups)))

差异比较

maxDiam = diam %>% group_by(Groups) %>% summarize(MaxDiameter=max(diameter))### Do tukey tests
hsd_diameter=HSD.test(aov(diameter~Groups,data=diam), "Groups", group=T)
hsd_diameter$groups <- hsd_diameter$groups[levels(diam$Groups),]
tukeyDiameter <- data.frame(rownames(hsd_diameter$groups),do.call("rbind",strsplit(rownames(hsd_diameter$groups),"_")),hsd_diameter$groups,stringsAsFactors = T)
colnames(tukeyDiameter) <- c("Groups","Species","CO2","Day","median_diameter","groups")tukeyDiameter <- left_join(tukeyDiameter,meanDiam,by="Groups")
head(tukeyDiameter)
> head(tukeyDiameter)Groups Species      CO2 Day median_diameter groups
M82_ambient_7     M82_ambient_7     M82  ambient   7        321.9840     bc
M82_ambient_10   M82_ambient_10     M82  ambient  10        390.9108     ab
M82_ambient_13   M82_ambient_13     M82  ambient  13        430.4615      a
M82_elevated_7   M82_elevated_7     M82 elevated   7        316.3562     bc
M82_elevated_10 M82_elevated_10     M82 elevated  10        448.0713      a
M82_elevated_13 M82_elevated_13     M82 elevated  13        443.9278      a

ggplot绘图

  1. 箱线图
plotGG <- ggplot(diam,aes(x=Groups,y=diameter)) +scale_fill_manual(values=c("skyblue1", "black")) + scale_color_manual(values=c("skyblue1", "black")) +geom_violin(aes(color=paste(CO2)),position=position_dodge(1),trim = F,width=1)

Tufte箱形图

plotGG + geom_tufteboxplot(position=position_dodge(1),outlier.colour="transparent", width = 1,color="black")

line图

plotGG02 + geom_line(data=tukeyDiameter, aes(x=Groups, y=median_diameter,group = paste(CO2,Species)),alpha=0.5)

添加显著性差异

plotGG03 <- plotGG02 + geom_text(data=tukeyDiameter, aes(x=Groups, y=(maxDiam$MaxDiameter)*1.25,label=groups,group=NULL),vjust=0,color="black")

进行美化

plotGG03 +theme_bw()+ggtitle("Root diameter change by species in response to eCO2 over time") + xlab('')+ylab(expression(paste("Root diameter (",mu,"m)"))+theme(#legend.position="bottom",legend.text = element_text(size=12),axis.text.y = element_text(size=12, colour="black", family = "sans", angle = 0), axis.text.x = element_text(size=12, colour="black", family = "sans", angle = 45, hjust = 1),axis.title= element_text(size=12),strip.text.x = element_text(size=12, angle = 0),strip.text.y = element_text(size=12, angle = 0),plot.title = element_text(size=12, angle = 0))

绘图全部代码

ggplot(diam,aes(x=Groups,y=diameter)) +scale_fill_manual(values=c("skyblue1", "black")) + scale_color_manual(values=c("skyblue1", "black")) +geom_violin(aes(color=paste(CO2) ),position=position_dodge(1),trim = F,width=1) + #geom_boxplot(aes(color=paste(CO2)),position=position_dodge(1),width=0.09,outlier.shape = NA) + geom_tufteboxplot(position=position_dodge(1),outlier.colour="transparent", width = 1,color="black") + #geom_dotplot(aes(fill=CO2),binaxis='y', stackdir='center',position=position_dodge(1),dotsize = 0.5)  + #Looks cleaner than with#geom_jitter(aes(color=paste(CO2)),width = 0.05,size=0.75) + geom_line(data=tukeyDiameter, aes(x=Groups, y=median_diameter,group = paste(CO2,Species)),alpha=0.5) +facet_grid(.~Species,scales = "free_x",as.table = T) +coord_cartesian(ylim = c(min(diam$diameter)*.6, max(diam$diameter)*1.5)) +theme(axis.text.x = element_text(angle = 45, hjust = 1)) +## 添加显著性差异geom_text(data=tukeyDiameter, aes(x=Groups, y=(maxDiam$MaxDiameter)*1.25,label=groups,group=NULL),vjust=0,color="black")+theme_bw()+ggtitle("Root diameter change by species in response to eCO2 over time") + xlab('')+ylab(expression(paste("Root diameter (",mu,"m)")))+theme(#legend.position="bottom",legend.text = element_text(size=12),axis.text.y = element_text(size=12, colour="black", family = "sans", angle = 0), axis.text.x = element_text(size=12, colour="black", family = "sans", angle = 45, hjust = 1),axis.title= element_text(size=12),strip.text.x = element_text(size=12, angle = 0),strip.text.y = element_text(size=12, angle = 0),plot.title = element_text(size=12, angle = 0))

往期文章:

1. 最全WGCNA教程(替换数据即可出全部结果与图形)

WGCNA分析 | 全流程分析代码 | 代码一

WGCNA分析 | 全流程分析代码 | 代码二

WGCNA分析 | 全流程代码分享 | 代码三


2. 精美图形绘制教程

精美图形绘制教程


小杜的生信筆記,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

这篇关于跟着PC学作图 | 小提琴图+Tufte箱形图+折线图的绘制教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统