我有一个简单的箱形图,我想动态地隐藏变量标签,以便一次只打印其中一个:
library(ggplot2)
library(dplyr)
library(magrittr)
mtcars <- as.data.frame(mtcars)
mtcars$CarName <- rownames(mtcars)
mtcars$cyl <- as.factor(mtcars$cyl)
#Only want to label 6 clyinder boxplot
mtcars <- mtcars %>%
mutate(Label = ifelse(cyl == 6,
"6 Cylinders", NA))
ggplot(mtcars, aes(y=mpg, x = cyl)) +
geom_boxplot() +
theme(axis.text.x = element_blank())
我要实现的目标仍然是绘制3个箱形图(对于圆柱4、6和8,为1个图),但我只想显示圆柱6的标签。
在我的数据集中,“标签”列中填充了我想要标记的圆柱体,对于我不想标记的圆柱体,其值为空。该列会动态更新,因此我需要能够使用它来标记正确的箱形图。
下面是到目前为止我的箱形图。我想标记6:
奖金问题:如果我还可以为6缸盒子填充颜色/粗体线条,使其看起来与其余部分不同,那将很好。
答案 0 :(得分:0)
您可以使用geom_text
或geom_label
创建标签。在这种箱线图中,按我的方式手动设置标签的y
位置或将其绑定到另一个变量非常有用。我还创建了一个简单的变量来强调6个圆柱体的颜色。
library(ggplot2)
library(dplyr)
library(magrittr)
mtcars <- as.data.frame(mtcars)
mtcars$CarName <- rownames(mtcars)
mtcars$cyl <- as.factor(mtcars$cyl)
mtcars %>%
mutate(Label = ifelse(cyl == 6,
"6 Cylinders", NA),
fill_color = cyl == 6) %>%
ggplot(aes(y=mpg, x = cyl)) +
geom_boxplot(aes(fill = fill_color)) + geom_label(aes(label = Label, y = 10)) +
guides(fill = F)