ggplot:云雨图 + 对称小提琴图 + 配对散点图 + 箱图

2024-01-15 05:30

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

ggplot 画图经验


数据整理

`将数据整理成 长表格 的形式

在部分可以通过采用 tidy 包中的 pivot函数


绘图

相关的 package

library(tidyverse)
library(gghalves) # 用于绘制分半小提琴图

画该图中的一个重点是如何将两个小提琴分别朝向不同的方向,在这里,我采用了 gghalves 包中的
geom_half_violin 函数,并通过 filter 分别将变量的两个水平分别绘制出来(分别朝向左或右), 并通过position函数指定每个小提琴的位置。

ggplot(data = exp5_plot, aes(y = RT)) +geom_point(aes(y= RT, x = phase, fill = phase, color = phase),position = position_jitterdodge(jitter.width = .3, jitter.height = .1,dodge.width = 0.3), size = 3, shape = 20, alpha = 0.6) +geom_line(aes( x = phase, group = filename) , color = "lightgray", alpha = .8) +geom_boxplot(data = exp5_plot %>% filter(phase=="pre"),aes(fill = phase), position = position_nudge(x = .85), width = .1, alpha = .3,outlier.shape = NA,)+geom_boxplot(data = exp5_plot %>% filter(phase=="post"),aes(fill = phase), position = position_nudge(x = 2.15), width = .1, alpha = .3)+geom_half_violin( data = exp5_plot %>% filter(phase=="pre"), aes(fill = phase, x= phase), position = position_nudge(x = -.25), adjust = 1, trim = T, alpha = .5, colour = NA, side = "l") +geom_half_violin( data = exp5_plot %>% filter(phase=="post"), aes(fill = phase, x= phase), position = position_nudge(x = .25), adjust = 1, trim = T, alpha = .5, colour = NA, side = "r")  +facet_grid(condition~test) +theme_bw()+labs(y = "Response Time")+  theme(axis.title.x = element_text(size = 15,family = "Arial"),axis.title.y = element_text(size = 15,family = "Arial"),axis.text.x = element_text(size = 12, family = "Arial"),axis.text.y = element_text(size = 12, family = "Arial"),strip.text.x = element_text(size = 12, family = "Arial"),legend.position = "none",panel.grid.major = element_line(color = NA),panel.grid.minor = element_blank())

实际图形

实际图形效果
Note:考虑到我们给散点加了jitter,散点的位置可能与真实位置存在些许偏差,并且配对线中也并非完全起止于散点,有必要的话可以考虑删除jitter,或在论文中做相应说明。

这篇关于ggplot:云雨图 + 对称小提琴图 + 配对散点图 + 箱图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用matplotlib绘制散点图、柱状图和饼状图-学习篇

一、散点图 Python代码如下: num_points = 100x = np.random.rand(num_points) #x点位随机y = np.random.rand(num_points) #y点位随机colors = np.random.rand(num_points) #颜色随机sizes = 1000 * np.random.rand(num_points) # 大

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析

文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相似对角化5.2 已知两个矩阵相似,求某个矩阵中的未知参数5.3 相似时,求可逆矩阵P,使

VSC++: 括号对称比较

括号的使用规则:大括号,中括号,小括号{[()]};中括号,小括号[()];小括号();大括号、中括号、小括号、中括号、小括号、大括号{[()][()]};大括号,中括号,小括号,小括号{[(())]};大括号,中括号,小括号,小括号{[()()]};小括号不能嵌套,小括号可连续使用。 {[]}、{()}、([])、({})、[{}]、{}、[]、{[}]、[(])都属非法。 char aa[

【python 散点图】美观画时间序列散点图

经常遇到时间序列的数据,用散点图可以直观的查看数据的分布情况。matplotlib模块的pyplot有画散点图的函数,但是该函数要求x轴是数字类型。pandas的plot函数里,散点图类型’scatter’也要求数字型的,用时间类型的会报错。 最终摸索出画散点图的简单办法。可以使用pyplot的plot_date()画散点图。 # -*- coding: utf-8 -*-"""spee

RS485差分信号不对称

在RS485总线通信中,差分信号不对称的问题时常出现,尤其是在总线未接从机设备的情况下。这一问题不仅影响通信质量,还可能导致信号传输错误。通过对实际波形、芯片手册及电路的深入分析,可以找出引发差分信号不对称的根本原因,并采取相应的解决措施。 问题描述 在RS485通信测试中,当总线上没有从机设备连接时,观察到RS485差分信号(A、B)关于地(GND)不对称。理想情况下,RS485的差分信

对称的二叉树 java实现

题目描述: 请实现一个函数,用来判断一棵二叉树是不是对称的,如果一棵二叉树和他的镜像是一样的,那么它是对称的; 解题思路:首先 理解镜像的概念,进行就是一棵二叉树左右节点反转过后形成的二叉树和原来的二叉树是一样的。这道题目中判断条件是使用和元二叉树的镜像相同,那么最low的方法是对原二叉树进行重构,重构后的二叉树和原二叉树进行比较,相同即是对称,不同就是不对称喽。那么这种方法需要额外空间的,我

【BLE】四.SMP安全配对详解

设备配对流程 SMP专业术语 Paring(配对): 配对能力交换,设备认证,密钥生成,连接加密以及机密信息分发等 过程 Bonding(绑定) 配对中会生成一个长期密钥(LTK,long-term Key),双方把LTK存储在Flash,那么这两个设备再次重连就可跳过配对流程,且直接使用LTK对蓝牙连接进行加密; 不存储LTK(不分发LTK),paring完成后连接也是加密的,但重连

数据结构:(LeetCode101)对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root = [1,2,2,3,4,4,3]输出:true 示例 2: 输入:root = [1,2,2,null,3,null,3]输出:false 提示: 树中节点数目在范围 [1, 1000] 内-100 <= Node.val <= 100 进阶:你可以运用递归和迭

对称密码学

1. 使用OpenSSL 命令行         在 Ubuntu Linux Distribution (发行版)中, OpenSSL 通常可用。当然,如果不可用的话,也可以使用下以下命令安装 OpenSSL: $ sudo apt-get install openssl 安装完后可以使用以下命令检查 OpenSSL 版本: $ openssl version 其输出将如下所示: O

判断一棵二叉树是否为对称树之java实现

package com.cb.java.algorithms.jianzhioffer.tree;public class SymmetricTree {class TreeNode {int data; // 数据域TreeNode left;// 左子节点TreeNode right; // 右子节点public TreeNode(int data) {this.data = data;}}p