我想使用geom_label
绘制数据以在矩形内绘制一些文本。我找不到如何在文本中添加透明度(alpha)。实际上,透明度似乎仅适用于填充色:
ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars), alpha=cyl))+ geom_label(fill="blue")
ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars), alpha=cyl)) + geom_text()
当我改用geom_text
时,alpha参数按预期工作:
答案 0 :(得分:2)
通过使用这种残酷的技巧,您可以使其发挥作用。只需将label
移到geom_text
内,
并为geom_label
输入一个空的长字符串,但这几乎不是“可重现”的解决方案。
library(ggplot2)
ggplot(mtcars, aes(wt, mpg, alpha=cyl)) +
geom_label(label=" ", fill="blue") +
geom_text(aes(label = rownames(mtcars)))
@agenis的编辑:我们首先可以计算每个标签的空格长度,以便使文本框适应文本
ggplot(mtcars %>% mutate(blank_label = strrep(" ", nchar(rownames(.))*2)), aes(wt, mpg, alpha=cyl)) +
geom_label(aes(label=blank_label), fill="blue") +
geom_text(aes(label = rownames(mtcars)))
({*2
是因为我无法获得具有固定宽度字符的字体”)