当前位置: 首页 > article >正文

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

目录

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

图例调整

字体类型设置

颜色相关

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.kler.cn/a/560506.html

相关文章:

  • Android之APP更新(通过接口更新)
  • 嵌入式硬件篇---滤波器
  • 创建第一个 Maven 项目(一)
  • 从零开始构建基于DeepSeek的智能客服系统
  • ai问答--1
  • 让网页“浪“起来:打造会呼吸的波浪背景
  • 码率和采样率
  • 详解golang的Gengine规则引擎
  • ProfiNet转EtherNet/IP罗克韦尔PLC与监控系统通讯案例
  • PyVideoTrans:一款功能全面的视频翻译配音工具!
  • VSCode 使用import导入js/vue等时添加智能提示,并可跳转到定义
  • Http模块及练习
  • 以 Tomcat 为例分析 Java 中的线程池
  • 力扣每日一题【算法学习day.133】
  • java练习(40)
  • Fetch API 与 XMLHttpRequest:深入剖析异步请求的利器
  • Python实现GO鹅优化算法优化XGBoost回归模型项目实战
  • 【Linux探索学习】第二十七弹——信号(上):Linux 信号基础详解
  • 【Http和Https区别】
  • 【信息系统项目管理师-案例真题】2009上半年案例分析答案和详解