首页 > 解决方案 > R ggplot自定义标签轴与其他变量打勾

问题描述

当标记轴刻度时,我想在括号中添加数据框中的其他信息。例如,使用下面的代码片段,我想自动将信息包含在Arealabel 旁边的括号中X。换句话说,标签可能会说“芝加哥 (45)”,而不仅仅是“芝加哥”。我知道我可以通过在scale_x_discrete. 但是,我可以自动执行此操作吗?我的数据集有大量条目,所以我想避免手动执行此操作。

dataset <- data.frame(Area = sample(c(NA, 1:100), 3, rep = TRUE),
                      Y = rnorm(3), X = c("Chicago","New York", "Orlando"))
ggplot(dataset, aes(X, Y)) + geom_point()

标签: rggplot2

解决方案


您可以使用所需的刻度标签构建一个新列:

library(dyplr)
library(stringr)
library(ggplot2)
dataset = dataset %>% mutate(label = str_c(X, " (", Area, ")"))

然后在美学中使用列标签

ggplot(dataset, aes(label, Y)) + geom_point()

推荐阅读