R中坐标轴截断的不同实现方式

简介: 本文在做学术论文中,正好想做一下把y轴一些数据进行截断的效果。通过网上检索,整理了一下两种方式构建坐标轴截断图。

本文在做学术论文中,正好想做一下把y轴一些数据进行截断的效果。通过网上检索,整理了一下两种方式构建坐标轴截断图。


plotrix包


利用gap.barplot()进进行绘制,将gap参数设置为90,420进行y轴截断,可加入参数axis.break()对截断形状进行修改。

下面两第一个图是未加axis.break()的结果,第二幅是加了该参数的结果。

library(plotrix)w <- c(75, 64.4, 47.3, 66.9, 456, 80.6, 70, 55.8, 57.9, 561, 58.6, 61.2, 50.3, 54.6, 57.8)x <- c(1:15)gap.barplot(w,gap=c(90,420),xaxlab=x,ytics=c(50,70,450,500),col=rainbow(15),xlab ="mumbers", ylab = "height", main="test image")## ylim -282.7 231axis.break(2,90,breakcol="snow",style="gap")##去掉中间的那两道横线;axis.break(2,90*(1+0.02),breakcol="black",style="slash")##在左侧Y轴把gap位置换成slash;axis.break(4,90*(1+0.02),breakcol="black",style="slashuah")##在右侧Y轴把gap位置换成slash;

YIX268%%SZ%6%1W@D@UQECR.png

OYA30W`}59TCI]5]OJKIK3D.png

• 其他案例(官方里面的案例):可将利用horiz=TRUE将图横着画。

twogrp<-c(rnorm(10)+4,rnorm(10)+20)gap.barplot(twogrp,gap=c(8,16),xlab="Index",ytics=c(3,6,17,20), ylab="Group values",main="Barplot with gap")## ylim -5.809 13.25

$)S9849%}$C64BNA}JVOAM1.png

gap.barplot(twogrp,gap=c(8,16),xlab="Index",ytics=c(3,6,17,20), ylab="Group values",horiz=TRUE,main="Horizontal barplot with gap")## ylim -5.809 13.25

NB$00~Z1VF[`(JURIT1N0`A.png

ggplot2包


第二种方式是利用ggplot2进行绘制。首先随机构造一个数据,,我们想把y为7~17的数数据进行截断。思路是:构造一列:type,把小于7的命名为“samll”,大于17的命名为“big”,然后利用facet效果构建图。

library(ggplot2)set.seed(123)d <- data.frame(   x = 1:20,   y = c(rnorm(5) + 4, rnorm(5) + 20, rnorm(5) + 5, rnorm(5) + 22))ggplot(d, aes(x, y)) + geom_col()

CG5{_7BE{~%F$DQ]~9O18)8.png


library(dplyr)breaks = c(7, 17)d$type <- NAd$type[d$y < breaks[1]] = "small"d$type[d$y > breaks[2]] = "big"
d <- filter(d, .type == 'big') %>%   mutate(type = "small", y = breaks[1]) %>%   bind_rows(d)
mymin = function(y) ifelse(y <= breaks[1], 0, breaks[2])              p <- ggplot(d, aes(x, y)) +   geom_rect(aes(xmin = x - .4, xmax = x + .4, ymin = mymin(y), ymax = y)) +   facet_grid(type ~ ., scales = "free") +   theme(strip.text=element_blank())p

0E}J$U[`@)SFLD`[Z(T]DP6.png



目录
相关文章
|
数据挖掘 索引
RNA-seq数据分析一:(HISAT2+featureCounts)
RNA-seq数据分析一:(HISAT2+featureCounts)
|
数据可视化 搜索推荐 数据挖掘
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
1438 0
使用ComplexHeatmap绘制复杂热图|Note2:单个热图(万字超详细教程)(中)
|
10月前
|
数据挖掘 数据处理
单细胞RNA“速率”分析:差异动力学
单细胞RNA“速率”分析:差异动力学
单细胞RNA“速率”分析:差异动力学
|
10月前
|
数据可视化
HiCBricks|Hi-C 数据可视化与注释
HiCBricks|Hi-C 数据可视化与注释
HiCBricks|Hi-C 数据可视化与注释
|
安全 Java 编译器
什么是AOP面向切面编程?怎么简单理解?
本文介绍了面向切面编程(AOP)的基本概念和原理,解释了如何通过分离横切关注点(如日志、事务管理等)来增强代码的模块化和可维护性。AOP的核心概念包括切面、连接点、切入点、通知和织入。文章还提供了一个使用Spring AOP的简单示例,展示了如何定义和应用切面。
1696 1
什么是AOP面向切面编程?怎么简单理解?
|
存储 运维 数据可视化
低代码平台中的“模型驱动”与“表单驱动”有何区别?
低代码是近几年比较火的一种应用程序快速开发方式,它能帮助用户在开发软件的过程中大幅减少手工编码量,并通过可视化组件加速应用程序的高效交付。(低代码的定义来自Forrester报告,被认为是低代码一词的起源)。
低代码平台中的“模型驱动”与“表单驱动”有何区别?
|
关系型数据库 MySQL 分布式数据库
PolarDB MySQL数据库场景体验与测评
本文介绍如何在PolarDB上部署数据库,包括登录控制台、配置账号与数据库管理、执行SQL查询及调整Serverless配置等内容。通过创建测试表和数据操作演示了基本数据库管理功能,并展示了如何设置资源弹性扩缩、监控及备份数据。此外,还提供了关于节点切换、压测、加速复杂SQL查询、弹性并行查询及高可用性的详细场景体验说明,全方位展示了PolarDB的强大功能。
|
数据处理 Python
Pandas中的drop_duplicates()方法详解
Pandas中的drop_duplicates()方法详解
2194 2
|
存储 人工智能 搜索推荐
R语言Ternary包绘制三元图、RGB三色空间分布图的方法
R语言Ternary包绘制三元图、RGB三色空间分布图的方法
414 1
|
JavaScript 前端开发 安全
表单处理:使用 Vue 进行表单验证和提交
【4月更文挑战第22天】Vue 提供了便捷的表单组件和验证规则,支持实时用户输入验证和错误消息显示,确保数据正确性。通过封装验证逻辑和处理异步验证,增强代码复用和安全性。同时,关注用户体验,如清晰的指示和错误反馈,防止 CSRF 攻击,实现高效、安全的表单处理。
366 1

热门文章

最新文章