【R语言】ggplot2绘图常用操作

news2025/2/25 6:33:23

目录

坐标轴以及标签的相关主题

图例调整

字体类型设置

颜色相关

ggplot2如何添加带箭头的坐标轴?

标题相关主题调整

修改点图中点的大小

如何使得点的大小根据变量取值的大小来改变?

柱状图和条形图


坐标轴以及标签的相关主题

theme(

# 增大X轴标签字体大小

axis.text.x = element_text(angle = 45, hjust = 1, face = "bold", size = 12),

# 增大Y轴标签字体大小,不旋转

axis.text.y = element_text(face = "bold", size = 12),

# 增大X轴标题字体大小

axis.title.x = element_text(face = "bold", size = 14),

# 增大Y轴标题字体大小

axis.title.y = element_text(face = "bold", size = 14) ,

axis.line.y = element_blank(),# 移除 y 轴线

#增大分面标签字体大小

strip.text = element_text(face = "bold",size = 14) ,

# 调整标题字体大小和加粗 plot.title = element_text(size = 16, face = "bold"),

#修改坐标轴刻度的代码,就是那个刻度的长度和宽度

axis.ticks.length.x = unit(0.2, 'cm'),

axis.ticks.length.y = unit(0.2, 'cm'),

axis.ticks = element_line(size = 1)

)

hjust = 1表示右对齐,0.5表示居中对齐,0表示左对齐。y轴也可以设置angle,如果 axis.title.y的angle被设置为90,y轴标题就竖着显示了

图例调整

图例,分面标签字体大小,x轴和y轴的标签位置,写在theme里面

#调整图例文本大小

legend.text = element_text(face = "bold",size = 20),

#调整图例标题大小

legend.title = element_text(face = "bold",size = 20),

#去除图例标题

legend.title = element_blank(),

legend.position = "top",#图例显示在上方

legend.direction = "vertical",#图例的方向为垂直。

legend.justification = c(1,0),#图例的右上角与图形的右上角对齐

# 调整分面行标签的文本大小

就是调PBS和LR strip.text.y = element_text(size = 14, face = "bold"),

# 调整分面列标签的文本大小

strip.text.x = element_text(size = 14, face = "bold"),

#调整x轴和y轴标签的位置

axis.title.x = element_text(vjust = 0.5, hjust = 0),

axis.title.y = element_text(vjust = 0.5, hjust = 0)

调整图例颜色块(也称为图例键)的形状和大小使用代码

guides( color = guide_legend( override.aes = list( size = 6, # 图例点大小 alpha = 1, # 图例不透明 shape = 16 # 图例形状统一为实心圆 ) ) )

设置背景板和绘图区域为白色,写在theme里面就行

plot.background = element_rect(fill = "white"), # 设置绘图区域背景颜色 panel.background = element_rect(fill = "white") , # 设置面板背景颜色 panel.grid = element_blank(), # 去除网格线 这个通常要运行 panel.border = element_blank(), # 去除面板边框 这个一般不会运行,没有边框更难看 axis.line.x = element_blank(),#不显示x轴坐标轴 axis.line.y= element_blank(),#不显示y轴坐标轴

注意所有的背景以及字体的调整都要放在同一个theme中,防止覆盖原来的theme

在theme外边加这两句可以翻转坐标轴

+coord_flip()+ RotatedAxis()

字体类型设置

ggplot设置全局字体,下面两个挑一个就行

theme( text = element_text(family = "Times New Roman")#设置全局字体为Times New Roman text = element_text(family = "Arial")#设置全局字体为Arial )

去除图例写+NoLegend()

去除坐标轴写+NoAxes()

在图上加一个黑色框写

theme(panel.border = element_rect(fill = NA,color = "black",size=1.5,linetype = "solid"))

在theme后面写上+coord_cartesian(clip = "off")默认情况下,当图形元素超出绘图区域时会被裁剪掉。当设置为 

"off" 时,允许图形元素绘制在绘图区域之外,这样可以避免一些元素(如标签、注释等)因为超出绘图区域而被截断,确保所有需要显示的元素都能完整呈现。

颜色相关

ggplot2绘图的时候快速更换颜色可以使用

scale_fill_brewer(palette = "Set2")

用之前首先要library(RColorBrewer)

同时可以使用代码dput(brewer.pal(9, "Set1"))来把使用的颜色打印出来

col

ggplot2如何添加带箭头的坐标轴?

#添加开放式箭头 p2 <- p1+theme(

axis.line = element_line(arrow = arrow(length = unit(0.3, "cm")),linewidth=0.8))

#添加闭合式箭头 p3 <- p1+theme(axis.line = element_line(arrow = arrow(length = unit(0.2, "cm"),type="closed"),linewidth=0.8))

#添加双向箭头 p4 <- p1+theme(axis.line.x = element_line(arrow = arrow(length = unit(0.2, "cm"), type="closed",ends="both"),linewidth=0.8),

axis.line.y = element_line(arrow = arrow(length = unit(0.2, "cm"), type="closed"),linewidth=0.8))

高分文章中坐标轴没有箭头,都是直接一根线,坐标轴是线的代码是:

axis.line = element_line(color = "black", size = 0.5)

标题相关主题调整

把下面这句写到theme里面即可使主标题居中

plot.title = element_text(hjust = 0.5, face = "bold", size = 14)

重命名标题:使用labs,这个是独立于theme的,不是在theme里面写,而是用+连接,和theme是同级的

如何设置为空就可以删除对应的标题

p2 <- p2 + labs(x = "新的X轴标题", y = "新的Y轴标题",title = "主标题")

让点图中的点随着某个变量的取值而变化,比如随着logFC的绝对值变大,点也变大,实际上就是在aes中把size赋值为某个变量就行,一定要写到aes里面,aes即美学映射

p <- p + geom_point(aes(size = abs(avg_log2FC))) + scale_size_continuous(name = "Abs Log2FC", breaks = seq(0, max(abs(deg$avg_log2FC)), by = 1), range = c(1, 5)) # 根据需要调整范围

修改点图中点的大小

p1<-p1 + geom_point(size = 5)

只要图是一个点图同时是ggplot对象就可以这样来定点的大小,比如cellchat包中的netVisual_bubble函数绘制的就是一个ggplot类型的点图,那我们就可以把这个函数绘制的图存到变量p1里面,然后使用netVisual_bubble来修改所有点的大小为5

如何使得点的大小根据变量取值的大小来改变?

只需要在aes里面写size = 某变量,就可以根据指定变量的取值来决定点的大小

如果点的大小是通过某个变量的值来改变的,我们可以人为规定点的大小的范围,避免变量取值范围过大引起的点的形状大小差异过大,调整方法为:

p1

柱状图和条形图

geom_bar(stat = "identity", position = "dodge")生成分组柱状图

geom_bar(stat = "identity", position = "stack")生成堆叠柱状图

想让条形图变成冲积图只需要在画条形图的代码中加上

geom_stratum(aes(fill = Taxon),width = 0.6)+ geom_alluvium(aes(fill = Taxon), alpha = .5)

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

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

相关文章

架构——Nginx功能、职责、原理、配置示例、应用场景

以下是关于 Nginx 的功能、职责、原理、配置示例、应用场景及其高性能原因的详细说明&#xff1a; 一、Nginx 的核心功能 1. 静态资源服务 功能&#xff1a;直接返回静态文件&#xff08;如 HTML、CSS、JS、图片、视频等&#xff09;。配置示例&#xff1a;server {listen 80…

涉密载体管控系统革新:RFID技术引领,信息安全新境界

行业背景 文件载体管控系统DW-S402是用于对各种SM载体进行有效管理的智能柜&#xff08;智能管理系统&#xff09;&#xff0c;实现对载体的智能化、规范化、标准化管理&#xff0c;广泛应用于保密、机要单位以及企事业单位等有载体保管需求的行业。 随着信息化技术发展&…

基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现

大家好&#xff0c;今天要和大家聊的是一款基于 SpringBoot 的 “电影交流平台小程序” 系统的设计与实现。项目源码以及部署相关事宜请联系我&#xff0c;文末附上联系方式。 项目简介 基于 SpringBoot 的 “电影交流平台小程序” 系统设计与实现的主要使用者分为 管理员 和…

【Rust中级教程】2.9. API设计原则之显然性(obvious) :文档与类型系统、语义化类型、使用“零大小”类型

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 2.9.1. 文档与类型系统 用户可能不会完全理解API的所有规则和限制。所以你写的API应该让你…

【网络编程】广播和组播

数据包发送方式只有一个接受方&#xff0c;称为单播。如果同时发给局域网中的所有主机&#xff0c;称为广播。只有用户数据报(使用UDP协议)套接字才能广播&#xff1a; 广播地址以192.168.1.0 (255.255.255.0) 网段为例&#xff0c;最大的主机地址192.168.1.255代表该网段的广…

Lecture 1 - AI Systems (Overview)

一、Machine Learning Approach标准机器学习流程 • Train ML algorithm&#xff08;训练机器学习算法&#xff09;&#xff1a;基于收集的数据训练机器学习模型。 二、Machine Learning for Adaptation&#xff08;适应性机器学习&#xff09; 加入了数据更新和自动化的部分…

Ansible 学习笔记

这里写自定义目录标题 基本架构文件结构安装查看版本 Ansible 配置相关文件主机清单写法 基本架构 Ansible 是基于Python实现的&#xff0c;默认使用22端口&#xff0c; 文件结构 安装 查看用什么语言写的用一下命令 查看版本 Ansible 配置相关文件 主机清单写法

springboot005学生心理咨询评估系统(源码+数据库+文档)

源码地址&#xff1a;学生心理咨询评估系统 文章目录 1.项目简介2.部分数据库结构与测试用例3.系统功能结构4.包含的文件列表&#xff08;含论文&#xff09;后台运行截图 1.项目简介 ​ 使用旧方法对学生心理咨询评估信息进行系统化管理已经不再让人们信赖了&#xff0c;把现…

Apache Doris:一款高性能的实时数据仓库

Apache Doris 是一款基于 MPP 架构的高性能、实时分析型数据库。它以高效、简单和统一的特性著称&#xff0c;能够在亚秒级的时间内返回海量数据的查询结果。Doris 既能支持高并发的点查询场景&#xff0c;也能支持高吞吐的复杂分析场景。 Apache Doris 最初是百度广告报表业务…

轻量级日志管理平台Grafana Loki

文章目录 轻量级日志管理平台Grafana Loki背景什么是Loki为什么使用 Grafana Loki&#xff1f;架构Log Storage Grafana部署使用基于 Docker Compose 安装 LokiMinIO K8s集群部署Loki采集Helm 部署方式和案例 参考 轻量级日志管理平台Grafana Loki 背景 在微服务以及云原生时…

《跟李沐学 AI》AlexNet论文逐段精读学习心得 | PyTorch 深度学习实战

前一篇文章&#xff0c;使用 AlexNet 实现图片分类 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于学习 9年后重读深度学习奠基作之一&#xff1a;AlexNet【下】【论文精读】】的心得。 《跟李沐…

【电机控制器】FU6832S——持续更新

【电机控制器】FU6832S——持续更新 文章目录 [TOC](文章目录) 前言一、ADC二、UART三、PWM四、参考资料总结 前言 使用工具&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ADC 二、UART 三、PWM 四、参考资料 总结 本文仅仅简…

计算机视觉算法实战——产品分拣(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ 1. 领域简介✨✨ 产品分拣是工业自动化和物流领域的核心技术&#xff0c;旨在通过机器视觉系统对传送带上的物品进行快速识别、定位和分类&a…

基于模块联邦的微前端架构:重构大型前端应用的模块化边界

引言&#xff1a;企业级前端的模块化困境 字节跳动广告系统采用Webpack 5模块联邦后&#xff0c;主应用构建时间从14分钟降至38秒&#xff0c;微应用独立发布频率提升至每天50次。在动态加载机制下&#xff0c;首屏资源加载体积减少79%&#xff0c;跨团队组件复用率达到92%。其…

Android之图片保存相册及分享图片

文章目录 前言一、效果图二、实现步骤1.引入依赖库2.二维码生成3.布局转图片保存或者分享 总结 前言 其实现在很多分享都是我们自定义的&#xff0c;更多的是在界面加了很多东西&#xff0c;然后把整个界面转成图片保存相册和分享&#xff0c;而且现在分享都不需要第三方&…

Linux放行端口

8080这个端口测试看telnet是不通的&#xff0c;您服务器内是否有对应的业务监听了这个端口呢&#xff1f;您到服务器内执行下&#xff1a; netstat -nltp |grep 8080 同时服务器内执行下&#xff1a; systemctl status firewalld iptables -nL 截图反馈下&#xff0c;我看下防火…

Spring Boot延迟执行实现

说明&#xff1a;本文介绍如何在Spring Boot项目中&#xff0c;延迟执行某方法&#xff0c;及讨论延迟执行方法的是事务问题。 搭建Demo 首先&#xff0c;创建一个Spring Boot项目&#xff0c;pom.xml如下&#xff1a; <?xml version"1.0" encoding"UTF-…

npm i 失败权限问题

安装完node之后, 测试全局安装一个最常用的 express 模块进行测试 失败&#xff0c;但是用管理员权限打开cmd 安装就成功。 报错如下&#xff1a; npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and …

uniapp 微信小程序打包之后vendor.js 主包体积太大,解决办法,“subPackages“:true设置不生效

现在是打包的时候&#xff0c;vendor.js 的内容全部打到了主包里面&#xff0c; 说一下我的方法&#xff1a; 1. 通过发行 小程序打包 这样打包的体积是最小的&#xff0c;打包之后打开微信开发工具&#xff0c;然后再上传 2.manifest.json,在“mp-weixin”里添加代码 "…

23.2、云计算安全机制与案例分析

目录 云计算安全保护机制与技术方案云计算安全保护机制与技术方案常见云计算网络安全机制云计算安全管理与运维云计算安全综合应用案例分析 - 阿里云云计算安全综合应用案例分析 - 腾讯云云计算安全综合应用案例分析 - 华为云 云计算安全保护机制与技术方案 首先针对云计算&am…