零维护

 找回密码
 立即注册
快捷导航
搜索
热搜: 活动 交友 discuz
查看: 138|回复: 4

ggplot2"繁琐"指南(I)-如何改变字体大小

[复制链接]

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-9-21 03:46:24 | 显示全部楼层 |阅读模式
前言

最近一年来我开始频繁的进行论文写作,其中不免有很多绘图的需求,而且有些特别特别细节的需求是我之前从未想到过的(诸如让boxplot的中位线更粗一些、将图中text的字体设定为某种特殊字体等),让人觉得极为繁琐。对我个人而言,ggplot2已经是两三年前简单学过的东西,只记得大致的代码结构,很多特别细节的arguments基本记不清了,每次遇到都需要不停的google,甚至有时会做重复的搜索。所以此系列旨在为自己提供记录、也跟大家分享我在论文作图中遇到的坑和经验。
主要内容

本文主要分享在ggplot2中如何改变字体大小。动机很简单:有时候在默认字体下画出来的图中字体太小,放到论文里可读性较差,需要调整字体大小。
本文主要参考:https://statisticsglobe.com/change-font-size-of-ggplot2-plot-in-r-axis-text-main-title-legend
(0) 原始图
首先我们先画一个我们最基础的图,作为后续进行修改的基础。



原始图

(1) 改变图中所有字体的大小

可以通过以下此行来改变图中所有字体的大小,如下图所示,明显图中所有字体都因size的变化而变大了。
myplot + theme(text = element_text(size = 30))


改变图中所有字体的大小

(2) 改变坐标轴上标注的字体大小

myplot + theme(axis.text = element_text(size = 30))


改变坐标轴上标注的字体大小

当然,如果需要只改变某个坐标轴上标注的字体大小,也可以用:
myplot + theme(axis.text.x = element_text(size = 30))
myplot + theme(axis.text.y = element_text(size = 30))


只改变x轴上标注的字体大小

(3) 改变坐标轴名称的字体大小

myplot + theme(axis.title = element_text(size = 30))


改变坐标轴名称的字体大小

类似的,如果需要只改变某个坐标轴名称的字体大小,也可以用:
myplot + theme(axis.title.x = element_text(size = 30))
myplot + theme(axis.title.y = element_text(size = 30))


只改变x轴名称的字体大小

(4) 改变图名称的字体大小

myplot + theme(plot.title = element_text(size = 30))


改变图名称的字体大小

(5) 改变图例的字体大小

myplot + theme(legend.text = element_text(size = 30))


改变图例的字体大小

类似的,如果需要改变图例title的字体大小,也可以用:
myplot + theme(legend.title = element_text(size = 30))


改变图例title的字体大小

总结

不难发现,对于ggplot2中字体大小的改变,主要是通过theme函数来实现的,对于不同的需求,只需简单更改其中arguments的名称即可。
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2025-3-10 14:42:59 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

1

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2025-4-17 18:17:39 | 显示全部楼层
占坑编辑ing
回复

使用道具 举报

1

主题

7

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2025-4-19 01:59:29 | 显示全部楼层
看起来不错
回复

使用道具 举报

0

主题

3

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2025-4-28 10:41:40 | 显示全部楼层
路过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver| 手机版| 小黑屋| 零维护

GMT+8, 2025-7-7 19:20 , Processed in 0.093047 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2020, LianLian.

快速回复 返回顶部 返回列表