给ggplot图随心所欲地加注释
如何在图中添加文字注解、线段、箭头及方程式
本文介绍一下如何在图中添加文字注释,线段,矩形及方程式。
1 示例数据
使用R自带的mtcars数据集作为示例数据。
library(ggplot2)#R包加载
head(mtcars)#查看mtcars数据集前6行
# mpg cyl disp hp drat wt qsec vs am gear carb
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
2 绘制散点图
p<-ggplot(mtcars,aes(x=disp,y=wt))+
geom_point()+
theme_classic() # 使用极简经典主题
p
3 添加文本注释
p+annotate("text",
x=250,y=5, #文字注释的的坐标是(22,240)
label="add text", #标签内容
color='red') # 文本的颜色
4 数学表达式
使用annotate(geom='text)
,并设置parse=TRUE
。注意:parse = TRUE 很重要,这决定了数学表达式是否按正常的形式显示。虽然geom_text也可以编辑公式,但是能用就行了,学那么多代码谁记得住。
# 在指定位置添加带有数学表达式的文本
p + annotate("text",
x = 250, y = 5,
label = "italic(R) ^ 2 == 0.75",
size = 7,
color = 'red',
parse = TRUE)
其他的用法:
功能 | 语法 | 示例 | 显示效果 |
---|---|---|---|
斜体 | italic(text) |
italic("Text") |
Text |
加粗 | bold(text) |
bold("Text") |
Text |
上标 | ^ |
x^2 |
x² |
下标 | [] |
x[1] |
x₁ |
上下标结合 | x[1]^2 |
x[1]^2 |
x₁² |
分数 | frac(numerator, denominator) |
frac(1, 2) |
½ |
根号 | sqrt(expression) |
sqrt(x) |
√x |
求和 | sum(expression, lower, upper) |
sum(x[i], i==1, n) |
∑(xᵢ) from i=1 to n |
积分 | integral(expression, lower, upper) |
integral(f(x)*dx, a, b) |
∫f(x)dx from a to b |
希腊字母 | 直接使用名称(如 alpha , beta ) |
alpha + beta |
α + β |
数学符号 | * , %*% , %+-% |
a %*% b |
a × b |
括号 | ( ) 或 { } |
(x + y) |
(x + y) |
空格 | ~ |
x~y |
x y |
特殊字符 | 用反引号 ` 包裹 |
`x y` |
x y |
5 添加矩形
使用 annotate("rect")
。
p + annotate("rect",
xmin=100, xmax=200, # x轴范围[100,200]
ymin=2, ymax=4, # y轴范围[2,4]
alpha=0.2, # 透明度
fill='red') # 颜色
6 添加线段
p + annotate("segment",
x=100, xend=350, # x轴范围[100,350]
y=4.5, yend=4.5, # y轴范围[4.5,4.5]
colour="red", # 线条颜色
lwd=1)
7 完整代码
library(ggplot2)#R包加载
head(mtcars)#查看mtcars数据集前6行
# mpg cyl disp hp drat wt qsec vs am gear carb
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
p<-ggplot(mtcars,aes(x=disp,y=wt))+
geom_point()+
theme_classic() # 使用极简经典主题
p
p = p+annotate("text",
x=400,y=2, #文字注释的的坐标是(22,240)
label="add text", #标签内容
color='red') # 文本的颜色
p
p = p + annotate("text",
x = 250, y = 5,
label = "italic(R) ^ 2 == 0.75",
size = 7,
color = 'red',
parse = TRUE)
p
p = p + annotate("rect",
xmin=100, xmax=200, # x轴范围[12.5,22.5]
ymin=2, ymax=4, # y轴范围[200,400]
alpha=0.2, # 透明度
fill='red') # 颜色
p
p = p + annotate("segment",
x=100, xend=350, # x轴范围[14,18]
y=4.5, yend=4.5, # y轴范围[260,260]
colour="red", # 线条颜色
lwd=1)
p
本文最后更新于
2025-01-15
如有失效,请留言
THE END