需要注意的是,text() 函数的 adj 参数决定文本的水平位置,它可以取 0(左对齐)到 1(右对齐)之间的任意值。实际上,该参数也可以取该范围之外的值。也就是说,将该值设为负数会使文本从指定的 x 位置右侧开始。同样,将 adj 设为大于 1 会使文本在 x 位置的左侧结束。
library(MASS)
plot(UScereal$fibre)
text(5,28,"<-- Outliers [left-justified text at (5, 28)]", adj =0)
text(65,23,"[Right-justified text at (65, 23)]", adj =1, col ="red")
text(5,28,"[Centered text (default) at (31, 18)]", col ="blue")技术支持
字体、方向与其他文本特性
下面展示了通过 text 函数的可选参数更改添加文本外观的一些方法。默认情况下,文本在页面上沿水平方向创建,但可以通过 srt 参数进行更改,该参数指定相对于水平轴的旋转角度。
我们还可以使用 col 参数指定文本颜色,红色文本还展示了可以使用 cex 参数更改文本大小。通过指定 cex = 1.2,我们将文本设定为比正常大小大 20%。
本例中修改的另一项文本特性是字体,由 font 参数设置。默认值为 font = 1(常规体),font = 2 表示粗体,font = 3 表示斜体,font = 4 表示粗体加斜体。
library(MASS)
plot(Boston$rad)# "Inner city" with adjusted colour and rotation
text(350,24, adj =1,"Inner city? -->", srt =30, font =2, cex =1.2, col ="red")# "Suburbs" with adjusted colour and rotation
text(100,15,"Suburbs? -->", srt =-45, font =3, col ="green")
title("Text with varying orientations, fonts, sizes & colors")技术支持
像之前一样使用 text() 函数并以 Make 变量作为标签,在 3 缸汽车的右侧添加标签,但这次使用 adj = 0.2 将标签进一步右移,使用 cex 参数将标签大小增加 20%,并使用 font 参数将标签设置为粗斜体。
# Plot MPG.city vs. Horsepower as open circles
plot(Cars93$Horsepower, Cars93$MPG.city)# Create index3, pointing to 3-cylinder cars
index3 <- which(Cars93$Cylinders ==3)# Highlight 3-cylinder cars as solid circles
points(Cars93$Horsepower[index3],
Cars93$MPG.city[index3],
pch =16)# Add car names, offset from points, with larger bold text
text(Cars93$Horsepower[index3],
Cars93$MPG.city[index3],
Cars93$Make[index3],
adj =-0.2, cex =1.2, font =4)技术支持
绘图字符(plot character)或 pch 是在许多 R 函数中用于设置绘制字符的标准参数。
可以通过多种形式在图中添加说明性文本,包括坐标轴标签、标题、图例,或直接在图上添加文本。R 的基础图形函数通常会默认创建坐标轴标签,但也可以通过
xlab()参数提供自定义的 x 轴标签,以及通过ylab()提供自定义的 y 轴标签来覆盖默认设置。某些基础图形函数也会提供默认标题,但同样可以像下面这样通过参数进行覆盖:
左侧的图使用了 density 函数返回的默认标题,它告诉我们该图是由该函数使用其默认选项生成的,同时给出了我们正在绘制密度的变量的 R 规范。在右侧的图中,通过指定可选参数 main 覆盖了默认标题。请注意,通过包含换行符 \n(反斜杠 n),我们在这个字符串中创建了一个两行标题。
text()函数与 lines 和 points 函数类似,text 是一个低级图形函数,允许我们向现有图形添加说明性文本。为此,必须指定 x 和 y 的值(文本在图上的坐标位置),以及 labels(一个字符向量,指定要添加的文本)。
默认情况下,添加到图中的文本会以指定的 x 值为中心,但可以使用可选参数
adj调整对齐方式。需要注意的是,
text()函数的adj参数决定文本的水平位置,它可以取 0(左对齐)到 1(右对齐)之间的任意值。实际上,该参数也可以取该范围之外的值。也就是说,将该值设为负数会使文本从指定的x位置右侧开始。同样,将adj设为大于 1 会使文本在x位置的左侧结束。字体、方向与其他文本特性
下面展示了通过 text 函数的可选参数更改添加文本外观的一些方法。默认情况下,文本在页面上沿水平方向创建,但可以通过
srt参数进行更改,该参数指定相对于水平轴的旋转角度。例如,红色文本由于将
srt指定为正的 30 度而向上倾斜,而绿色文本由于将srt指定为 -45 而向下倾斜。我们还可以使用
col参数指定文本颜色,红色文本还展示了可以使用cex参数更改文本大小。通过指定cex = 1.2,我们将文本设定为比正常大小大 20%。本例中修改的另一项文本特性是字体,由
font参数设置。默认值为font = 1(常规体),font = 2表示粗体,font = 3表示斜体,font = 4表示粗体加斜体。调整文本位置、大小与字体
在以下示例中,您将:
Cars93数据框绘制MPG.city与Horsepower的关系图,数据以空心圆表示(默认pch)。which()函数构造变量index3,以标识包含所有 3 缸汽车的行号。points()函数在图中所有代表 3 缸汽车的点上覆盖实心圆(pch = 16)。text()函数并以Make变量作为标签,在 3 缸汽车的右侧添加标签,但这次使用adj = 0.2将标签进一步右移,使用cex参数将标签大小增加 20%,并使用font参数将标签设置为粗斜体。运行上述代码后,将得到如下结果:
亲自试一试。
要了解更多关于在图中添加文本的内容,请观看我们课程 Data Visualization in R 的此视频。
本内容选自 DataCamp 的 Ronald Pearson 所授课程 Data Visualization in R。