下面是ggplot(来自https://wilkelab.org/ggtext/reference/geom_richtext.html)
library(ggplot2)
df <- data.frame(
label = c(
"Some text **in bold.**",
"Linebreaks<br>Linebreaks<br>Linebreaks",
"*x*<sup>2</sup> + 5*x* + *C*<sub>*i*</sub>",
"Some <span style='color:blue'>blue text **in bold.**</span><br>And *italics text.*<br>
And some <span style='font-size:18pt; color:black'>large</span> text."
),
x = c(.2, .1, .5, .9),
y = c(.8, .4, .1, .5),
hjust = c(0.5, 0, 0, 1),
vjust = c(0.5, 1, 0, 0.5),
angle = c(0, 0, 45, -45),
color = c("black", "blue", "black", "red"),
fill = c("cornsilk", "white", "lightblue1", "white")
)
ggplot(df) +
aes(
x, y, label = label, angle = angle, color = color, fill = fill,
hjust = hjust, vjust = vjust
) +
geom_richtext() +
geom_point(color = "black", size = 2) +
scale_color_identity() +
scale_fill_identity() +
xlim(0, 1) + ylim(0, 1)
我想给label
的背景增加一些透明度。当我应用alpha = 0.30
时,* 文本和背景 * 都会受到影响。有什么方法可以调整alpha
的背景吗?
@stefan建议使用scales::alpha
,但在以下情况下不起作用
library(ggplot2)
library(ggtext)
ggplot(data.frame(x = c(-2, 2)), aes(x = x)) +
stat_function(fun = dnorm) +
geom_richtext(data = data.frame(x = c(-1.4, -.5), y = rep(dnorm(0, 2)), y1 = c('First', 'Second')),
aes(x = x, y = y, label = y1, fill = alpha(y1, 0.2))) +
scale_fill_manual(breaks = c('First', 'Second'), values = c('#c1121f', '#023e8a'), aesthetics = 'fill')
有了这个,我得到下面的错误
Error: Unknown colour name: First
2条答案
按热度按时间juud5qan1#
一个选项是使用
scales::alpha
设置填充颜色的alpha:编辑对于您的第二个示例,我们可以或必须在
fill
量表的values
上应用scales::alpha
。然而,只有在geom_richtext
中使用fill
aes时,这才有效。如果不是这种情况,当然,我们仍然可以在ggnewscale
包中同时应用这两种方法中的一种。wqlqzqxt2#
下面是一个替代方法:根据documentation of
ggtext