你可以使用下面的基本语法来旋转ggplot2中图中的注释文本:
ggplot(df) +
geom_point(aes(x=x, y=y)) +
geom_text(aes(x=x, y=y, label=group), hjust=-0.3, vjust=-0.1, angle=45)
在这个特殊的例子中,我们使用角度参数将注释文本逆时针旋转45度,使用hjust和vjust参数增加文本与图中点的水平和垂直距离。
下面的例子展示了如何在实践中使用这种语法。
例子:在ggplot2中旋转标注的文本
假设我们在R中拥有以下数据集:
#create data frame
df <- data.frame(player=c('Brad', 'Ty', 'Spencer', 'Luke', 'Max'),
points=c(17, 5, 12, 20, 22),
assists=c(4, 3, 7, 7, 5))
#view data frame
df
player points assists
1 Brad 17 4
2 Ty 5 3
3 Spencer 12 7
4 Luke 20 7
5 Max 22 5
现在假设我们在ggplot2中创建以下散点图来可视化这些数据:
library(ggplot2)
#create scatter plot with annotated labels
ggplot(df) +
geom_point(aes(x=points, y=assists)) +
geom_text(aes(x=points, y=assists, label=player))

请注意,标签是水平的,直接位于点的上方。
我们可以使用下面的语法来旋转标签,并把它们移到离点稍远的地方,以使它们更容易阅读:
library(ggplot2)
#create scatter plot with annotated rotated labels
ggplot(df) +
geom_point(aes(x=points, y=assists)) +
geom_text(aes(x=points, y=assists, label=player), hjust=-.3, vjust=-.1, angle=45) +
ylim(3, 8)

请注意,现在标签都被逆时针旋转了45度。
请自由发挥hjust、vjust和角度参数的作用,让你的注释文本在图上处于你想要的任何位置。
注意:我们还使用了ylim参数来增加图上的y轴限制,这样图上顶部的标签 "Spencer "就不会被切断。
其他资源
下面的教程解释了如何在R中执行其他常见任务: