ggplot图片主题 复用与保存

图片主题、复用与保存

1、themme函数

ggplot2 中的 theme() 函数是 控制图表非数据部分外观的核心工具 ------ 它不改变图表的核心数据映射(如点、线、柱状图的位置 / 大小 / 颜色,这些由 aes() 和几何对象 geom_* 控制),而是负责调整图表的 "装饰性元素",比如标题样式、坐标轴标签、图例位置、背景颜色、网格线等,最终实现图表的个性化美化和风格统一。常用的主题设置有:

element_text():控制文本样式(字体、大小、颜色、加粗 / 斜体、对齐方式);

element_line():控制线条样式(颜色、粗细、线型:实线solid/ 虚线dashed等);

element_rect():控制矩形区域样式(填充色、边框颜色、边框粗细);

element_blank():隐藏对应元素(比如 panel.grid = element_blank() 隐藏所有网格线)。

2、图片复用

ggplot2 的核心设计是「图层叠加」,图表本质是一个可修改、可扩展的 ggplot 类对象。你可以将基础图表(如数据映射、核心几何对象)保存为变量,后续通过叠加图层、修改主题 / 标签等方式复用,无需重复写基础代码。

视频教程

大家可以先做一做R语言基础小测验,看看自己是否需要跟我们5.5h入门R语言的课程。

先上教程视频,B站同步播出:

https://www.bilibili.com/video/BV1miNVeWEkw

完整视频回放和答疑服务可见:5.5h入门R语言

本节课程视频:(点击此处查看原文)

"R语言入门课"是我们认为生信小白入门 不得不听的一个课程,我们也为这个课程准备了许多干货。R语言的精髓便是数据处理,在本节课中,我们详细介绍了向量、矩阵、数据框、数组、因子、列表的创建方法与数据访问方式,为以后的生物信息学数据处理打下牢固的基础!

本次课程代码

复制代码
###### 4.1.5 theme主题与图片的复用、保存 ######  
#theme_主题可以控制背景、颜色、字体、网格线、图例位置、及其他与数据无关的图形特征。
ggplot(data = CPS85,mapping = aes(x=exper,y=wage))+
  geom_point(color="blue",alpha=0.5,size=1.5)
# theme_bw()函数将灰色背景变为白色
ggplot(data = CPS85,mapping = aes(x=exper,y=wage))+
  geom_point(color="blue",alpha=0.5,size=1.5)+
  theme_bw()
ggplot(data = CPS85,mapping = aes(x=exper,y=wage))+
  geom_point(color="blue",alpha=0.5,size=1.5)+
  theme_grey()
ggplot(data = CPS85,mapping = aes(x=exper,y=wage))+
  geom_point(color="blue",alpha=0.5,size=1.5)+
  theme_dark()
ggplot(data = CPS85,mapping = aes(x=exper,y=wage))+
  geom_point(color="blue",alpha=0.5,size=1.5)+
  theme_light()
#前面用到的theme_bw()就是将背景颜色设置为白色,
# 这里我们展示一个简约主题(**theme_minimal()**):
ggplot(data = CPS85,mapping = aes(x=exper,y=wage))+
  geom_point(alpha=0.5)+
  theme_minimal()
# 基础图形(你的原始示例)
p_base <- ggplot(data = CPS85, 
                 mapping = aes(x = exper, y = wage, 
                               color = sex, shape = sex, linetype = sex)) +
  geom_point(alpha = 0.5) +
  geom_smooth(method = "lm", se = FALSE) +
  theme_minimal() +
  labs(title = "工作经验与工资关系", 
       x = "工作经验(年)", 
       y = "工资(美元/小时)",
       color = "性别", shape = "性别", linetype = "性别")
print(p_base)
# 1. 调整标题和轴标签样式
p1 <- p_base +
  theme(
    plot.title = element_text(size = 16, face = "bold", 
                              color = "green", hjust = 0.5),
    axis.title.x = element_text(size = 12, color = "orange", face = "italic"),
    axis.title.y = element_text(size = 12, color = "orange", face = "italic")
  )
print(p1)
# 2. 自定义刻度文本和网格线
p2 <- p1 +
  theme(
    axis.text.x = element_text(size = 10, color = "orange"),
    axis.text.y = element_text(size = 10, color = "orange"),
    panel.grid.major = element_line(color = "purple", linewidth = 0.5),# 主网格线
    panel.grid.minor = element_line(color = "red", linewidth = 0.3, 
                                    linetype = "dashed")# 次网格线
  )
print(p2)
# 3. 调整图例样式和位置
p3 <- p2 +
  theme(
    legend.position = "right",  # "right" "bottom" "left" "top" "none" 
    legend.box = "vertical",# "horizontal",   # 图例水平排列, 垂直排列"vertical" 
    legend.key.width = unit(2, "cm")  # 增加图例符号宽度
  )
print(p3)
# 4. 添加绘图区边框和背景
p4 <- p3 +
  theme(
    panel.border = element_rect(color = "white", fill = NA, linewidth = 1),
    plot.background = element_rect(fill = "grey", color = NA),
    plot.margin = margin(t = 15, r = 15, b = 15, l = 15, unit = "pt")  # 调整边距
  )
print(p4)
### 4.2.3 保存图形 ###
#1)直接在viewer中点击处理
#2)**ggsave()**函数
ggsave(file="mygragh.png",plot = p4,width = 5,height = 4,dpi = 300)# dots per inch
#这里的file=是设置图片名和格式,plot=是针对哪张图保存,宽度和高度单位是英寸
# 3) pdf函数
pdf(file="mygragh.pdf",width = 5,height = 4)
print(p4)
dev.off()
tiff(file="mygragh.tiff",width = 5,height = 4)
print(p4)
dev.off()
png(file="mygragh.png",width = 5,height = 4)
print(p4)
dev.off()
svg()
jpeg()
#图片格式有以下几种:pdf,jpeg,tiff,png,svg,

R语言入门课

1、课程简介

生信基地希望能够给大家提供系统性形成性规范性 的生信教学。前面几次活动中同学们表示希望能够有线下集中学习以及针对性的指导、答疑 。所以,此次我们已推出"生信R语言入门课 ",分为"R介绍"、"R语言数据对象"、"基本数据管理"、"图形初级(ggplot2)"四个模块共12节课。当然,我们也不做生信快餐 ,本次活动回放已剪辑完毕,方便错过活动的小伙伴加入。后续我们会持续拉群 在群里进行课程内容的答疑。

2、R语言介绍

R语言是一种专门为统计分析、数据可视化和计算而设计的编程语言,广泛应用于各个领域。R语言支持各种统计分析方法,如线性回归、方差分析、聚类分析等,同时也能够进行复杂的图形和数据可视化。R语言凭借其开源、免费、工具包丰富、数据处理能力强、可视化丰富的特性在生物信息学中被广泛应用 。例如RNA-Seq差异分析常用的DESeq2、edgeR的引用次数多达数万次。我们制作的单细胞教程几乎也全是基于R语言环境。很多同学找我们学习单细胞的时候都表示不想学习R语言,直接学习单细胞分析,不积跬步无以至千里,这显然是不现实的,所以,欢迎大家来参加此次的课程。

资料&课表

本次课程的学习资料可以联系文末客服微信领取:

目前12节总计5.5h的视频课程回放已剪辑完毕,方便错过直播的同学随时加入学习:

除了学习视频外,还给大家准备了学习资料,包括学习手册、课后习题。大家人手一份资料可以跟着视频联系:

课程目录:

1 、R介绍

1.1 R 下载与安装

1.1.1 RStudio

1.1.2 R的帮助函数

1.1.3 用于管理R工作区的函数

1.2 包(Packages)

1.2.1 包的基本函数

1.2.2 包处理大型数据集的示例展示

2、 R语言数据对象

2.1 理解数据集

2.2 数据结构

2.2.1 向量(vector)

2.2.2 矩阵(matrix)

2.2.3 数组(array)

2.2.4 数据框(data)

2.2.5 因子(factor)

2.2.6 列表(list)

2.3 数据输入

2.3.1 从带分隔符的文本文件导入数据

2.3.2 导入Excel数据

3、基本数据管理

3.1 创建新变量

3.2 变量的重编码(recoding)

3.3 变量的重命名

3.4.缺失值(NA)

3.5 类型判断和转换

3.6 数据排序

3.7 数据集的合并

3.8 选取变量

3.9 选取观测值

3.10 subset()函数选择观测值或变量

3.11 剔除变量

3.12 dplyr包

3.13 使用管道操作符对语句进行串接

4、图形初级(ggplot2)

4.1 使用ggplot2包创建图形

4.1.1 函数ggplot2()

4.1.2 geom()函数

4.1.3 分组

4.1.4 标尺

4.1.5 刻面

4.1.6 标签

4.1.7主题

4.2 ggplot2包的详细信息

4.2.1 放置数据和映射选项

4.2.2 将图形作为对象使用

4.2.3 保存图形

相关推荐
知识分享小能手16 小时前
R语言入门学习教程,从入门到精通,R语言数值关系数据可视化 - 完整知识点(5)
学习·信息可视化·r语言
生信碱移1 天前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
知识分享小能手1 天前
R语言入门学习教程,从入门到精通,R语言类别比较数据可视化- 完整知识点与案例代码(4)
学习·信息可视化·r语言
星座5281 天前
掌握双碳核心工具,从产品碳足迹到气候变化响应:基于OpenLCA、GREET、R语言的生命周期评价方法、模型构建及典型案例应用
r语言·生命周期·openlca·greet
知识分享小能手3 天前
R语言入门学习教程,从入门到精通,R语言网格绘图系统(ggplot2)- 完整知识点与案例代码(3)
开发语言·学习·r语言
做cv的小昊3 天前
【TJU】研究生应用统计学课程笔记(5)——第二章 参数估计(2.3 C-R不等式)
c语言·笔记·线性代数·机器学习·数学建模·r语言·概率论
hhb_6184 天前
R语言数据分析与可视化实战指南
开发语言·数据分析·r语言
知识分享小能手4 天前
R语言入门学习教程,从入门到精通,R语言传统绘图系统 - 完整知识点与案例代码(2)
开发语言·学习·r语言
笑不语4 天前
从共病网络到可解释 AI:同济医院 10 分 SCI 全流程复现(R 语言)
开发语言·人工智能·r语言
知识分享小能手5 天前
R语言入门学习教程,从入门到精通,R语言基础 - 完整知识点与案例代码(1)
开发语言·学习·r语言