ggplot2 缩小的/一般长度的、带箭头的坐标轴 | R语言

news2024/9/21 4:39:13

1. 效果图

在这里插入图片描述
左侧为DimPlot2()效果图。
右侧为DimPlot()效果图,原图。

2. 代码

  • axis.line = element_line(arrow = arrow(type = "open", length = unit(0.3, "cm"))), 其中:
    • type="open"表示是开放箭头,type=“closed” 表示是封闭箭头。
    • length= 设置箭头的长度。
#' DimPlot with 缩小的坐标轴
#'
#' @param scObject 
#' @param reduction 
#' @param group.by 
#' @param label 
#' @param raster 
#' @param legend.position 
#' @param ... 
#'
#' @return
#' @export
#'
#' @examples
DimPlot2=function(scObject, reduction="umap", group.by = "seurat_clusters", 
                  label=F, raster=F, legend.position="right", #"none"
                  ...){
  # https://stackoverflow.com/questions/78667978/plotting-only-half-length-axis-lines
  #1) init plot
  p1 <- DimPlot(scObject, 
                reduction = reduction, 
                group.by = group.by, 
                label = label, 
                raster = raster)#+ 
  #scale_colour_manual(values = group2.cols) #+ 
  #labs(title = "10x RNA", x = "UMAP_1", y = "UMAP_2")
  #2) get range
  getRange=function(x){
    #min(x) + 0.25 * diff(x)
    min(x) + 0.25 * (max(x)-min(x))
  }
  #3) set range
  p1 + 
    scale_x_continuous(breaks = getRange(p1$data[,1]), guide = guide_axis(cap = 'upper')) +
    #scale_y_continuous(breaks = quantile(p1$data[,2], prob = 0.20), guide = guide_axis(cap = 'upper')) +
    scale_y_continuous(breaks = getRange(p1$data[,2]), guide = guide_axis(cap = 'upper')) +
    
    theme(aspect.ratio = 1,
      panel.border = element_blank(),
      panel.grid = element_blank(),
      axis.line = element_line(arrow = arrow(type = "closed", length = unit(0.2, "cm"))),
      axis.text = element_blank(),
      axis.ticks = element_blank(),
      axis.title = element_text(hjust = 0.025),
      legend.position = legend.position
    )
}

if(0){
	DimPlot2(scObj, reduction = "umap", label=T)
	DimPlot2(scObj, reduction = "umap", label=T, legend.position = "none")
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2127776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

云手机哪一款好用?手游专用云手机一览!VMOS云手机

云手机&#xff0c;顾名思义&#xff0c;是一台运行在云端服务器上的虚拟手机。它具备传统手机的所有功能&#xff0c;但无需实际设备支持运算和存储。所有的计算、存储以及应用运行都由云端服务器承担。用户只需通过浏览器或客户端访问云手机的操作界面&#xff0c;就可以像操…

挖耳勺可以和别人共用吗?口碑好的可视耳勺!

人体分泌的耳垢会有细菌&#xff0c;如果与别人共用挖耳勺很有可能会交叉感染&#xff0c;所以一般建议自己有专用的挖耳勺。小编可以给大家分享一款超好用又能实现一人一用的挖耳勺--可视挖耳勺&#xff0c;它有着高清内窥镜可以进入耳道实时查看情况&#xff0c;并且耳勺头采…

用Postman调试是英文导致系统语言变成英文,SQL语句查询不出来对应的字段,出现SAP系统里面调试是有值的,但是外部调用是没有值的!

用Postman调试是英文导致系统语言变成英文&#xff0c;SQL语句查询不出来对应的字段&#xff0c;出现SAP系统里面调试是有值的&#xff0c;但是外部调用是没有值的&#xff01;后面调试了非常久&#xff0c;一直以为是有特殊字符导致的&#xff0c;后面处理了特殊字符之后还是不…

学生宿舍安全用电的重要性

一、宿舍用电安全的重要性 宿舍是学生学习和生活的场所&#xff0c;也是人员密集的地方。一旦发生用电安全事故&#xff0c;不仅会造成财产损失&#xff0c;还会危及学生的生命安全。因此&#xff0c;宿舍用电安全是学校和学生必须高度重视的问题。 二、宿舍用电安全注意事项 1…

QGIS 如何连接空间库,并实时编辑空间表?编辑后库表如何刷新,保证是最新数据?

文章目录 一、什么是 qgis&#xff1f;二、qgis 如何连接数据库三、实时编辑空间表四、编辑后库表如何刷新&#xff0c;保证是最新数据&#xff1f;五、总结 一、什么是 qgis&#xff1f; QGIS&#xff08;原称Quantum GIS&#xff09;是一个用户界面友好的开源桌面端软件&…

python安装包的三种区别

python安装包的三种区别&#xff1a; Download Windows x86 web-based installer Download Windows x86 executable installerDownload Windows x86 embeddable zip fileDownload Windows x86-64 web-based installerDownload Windows x86-64 executable installerDownload W…

【C++】入门基础(上)

Hi&#xff0c;好久不见&#xff01; 目录 1、C入门小基础 1.1 祖师爷--Bjarne Stroustrup&#xff08;本贾尼斯特劳斯特卢普&#xff09; 1.2 C参考文献 1.3 书籍推荐 2、C的第一个程序 3、命名空间 3.1 namespace的价值 3.2 namespace的定义 3.3 命名空间的使…

乐学英语四六级学习系统小程序的开发---附源码78055

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.1.1经济可行性 2.1.2技术可行性 2.1.3社会可行性 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 …

Java 如何检查两个给定的线段是否相交(How to check if two given line segments intersect)

给定两条线段(p1, q1)和(p2, q2)&#xff0c;判断给定的线段是否相交。 在讨论解决方案之前&#xff0c;让我们先定义方向的概念。平面中有序点三元组的方向可以是 –逆时针 –顺时针 –共线 下图显示了&#xff08;a&#xff0c;b&#xff0c;c&#xff09; 的不同可能方…

linux下使用Mail命令发送邮件的配置、快速实现以及sed命令的一些补充:行结合模式匹配取内容及sed命令显示配置文件中的有效内容

一、linux下使用Mail命令发送邮件的配置及快速实现 之前在服务器上增加了一些日志统计shell脚本并且每周进行一次日志分析统计自动在周一早上发到我的邮箱&#xff0c;最近服务器进行了迁移收缩&#xff0c;又得做点重复的事情&#xff0c;首先是让服务器支持邮件发送。 1&am…

Java语言程序设计基础篇_编程练习题*18.19 (思瑞平斯基三角形)

题目&#xff1a;*18.19 (思瑞平斯基三角形) 修改程序清单18-9, 开发一个程序让用户使用 “” 和 "-” 按钮将当前阶数增1或减1&#xff0c;如图 18 -12a 所示。初始阶数为0。如果当前阶数为0&#xff0c;就忽略按钮。 代码示例 编程练习题18_19SierpinskiTriangle.java…

WEBSERVICE报错逻辑端口不存在问题

例如如下的报错 打开你的SOA 修改这个位置的代码

JavaScript ES6特性(var let const、function=>、增强表达赋值、类与对象)

一、var let const 1、var var明明定义在for里面的但是外部能够访问这个变量,说明var可以跨域访问。 2、let let明明定义在for里面的但是外部不能够访问这个变量,说明let不可以跨域访问。 3、const const foo = {}; // 为 foo 添加一个属性,可以成功 foo.prop = 123; fo…

【mechine learning-六-supervise learning之线性回归模型】

监督学习之线性回归模型 线性回归模型线性模型回归模型 如何使用线性模型实现智能化预测呢寻找数据训练模型输入、特征、目标、预测值、模型代价函数 线性模型是人工智能监督学习中最广泛的应用&#xff0c;所以有必要先学习一下这个基础模型&#xff0c;做好基石。 线性回归模…

商业体育馆的未来之选:气膜馆引领新赛道—轻空间

随着城市化进程的加快&#xff0c;土地资源日益紧张&#xff0c;商业体育馆的建设需求也日渐增多。传统建筑在用地、成本、周期等方面存在诸多限制&#xff0c;而气膜馆的出现&#xff0c;为体育场馆建设提供了一条全新的解决方案。在未来十年&#xff0c;气膜体育馆将成为商业…

【系统方案】ERP管理系统总体建设方案(Word)

第一部分 概述 第二部分 方案介绍 第三部分 系统业务流程 3.1 关键需求概括分析 3.1.1 销售管理方面 3.1.2 采购管理方面 3.1.3 仓库管理方面 3.1.4 财务管理方面 3.1.5 人力资源方面 3.2 关键需求具体分析 3.2.1 财务管理 3.2.1.1会计凭证解决 3.2.1.2钞票流量预算管理 3.2.1.…

C语言15--联合体与枚举

联合体&#xff08;共同体&#xff09;基本概念 联合体的外在形式跟结构体非常类似&#xff0c;但它们有一个本质的区别&#xff1a;结构体中的各个成员是各自独立的内存空间&#xff0c;而联合体中的各个成员却共用同一块内存&#xff0c;因此联合体也称为共用体。 联合体各成…

[苍穹外卖]-09Spring Task定时任务

Spring Task spring Task是spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑 只要是需要定时处理的场景都可以使用Spring Task定时任务框架 cron表达式就是一个字符串,可以定义任务触发的时间 构成规则: 分为6或7个域, 由空格隔开,每个域代表一个含义每…

即插即用篇 | YOLOv8 引入并行的分块注意力 | 北京大学 2024 | 微小目标

本改进已同步到YOLO-Magic框架! 摘要:红外小目标检测是一项重要的计算机视觉任务,涉及在红外图像中识别和定位通常仅包含少量像素的微小目标。然而,由于目标体积小且红外图像背景通常复杂,这一任务面临诸多挑战。本文提出了一种深度学习方法,HCF-Net,通过多个实用模块显…

客厅适合用什么灯?客厅落地台灯款式分享

客厅适合用什么灯&#xff1f;客厅落地台灯具备着提供舒适、宽广光线的作用&#xff0c;非常受广大学生、家长们的欢迎。然而&#xff0c;市面上有些品质低劣的产品不仅难以达到预期的照明效果&#xff0c;更有可能导致眼睛受到二次伤害&#xff0c;甚至潜藏安全隐患。作为一名…