gpt4 book ai didi

保留标签的同时删除ggplot图例符号

转载 作者:行者123 更新时间:2023-12-04 04:15:16 25 4
gpt4 key购买 nike

示例代码和图:

data <- data.frame( ID = c(LETTERS[1:26], paste0("A",LETTERS[1:26])),
Group = rep(c("Control","Treatment"),26),
x = rnorm(52,50,20),
y = rnorm(52,50,10))

ggplot(data, aes(y=y,x=x, label=ID, color=Group)) +
geom_text(size=8) +
scale_color_manual(values=c("blue","red")) +
theme_classic() +
theme(legend.text = element_text(color=c("blue","red")))

enter image description here

我要解决的是删除图例符号(“a”)并为组标签(“控制”和“处理”)着色,使它们出现在图中(分别为蓝色和红色)。

我试过了:
geom_text(show_guide = F)

但这只是完全删除了图例。

为了简单起见,我可以只使用批注...,但想知道是否有图例特定的解决方案。
ggplot(data, aes(y=y,x=x, label=ID, color=Group)) +
geom_text(size=8, show_guide=F) +
scale_color_manual(values=c("blue","red")) +
theme_classic() +
annotate("text",label="Control", color="blue",x=20,y=80,size=8) +
annotate("text",label="Treatment", color="Red",x=23,y=77,size=8)

最佳答案

作为一种快速解决方案,您可以通过对所需信息进行硬编码来调整图例键,尽管反之亦然-保留键并删除标签。

library(grid)

GeomText$draw_key <- function (data, params, size) {
txt <- ifelse(data$colour=="blue", "Control", "Treatment")
# change x=0 and left justify
textGrob(txt, 0, 0.5,
just="left",
gp = gpar(col = alpha(data$colour, data$alpha),
fontfamily = data$family,
fontface = data$fontface,
# also added 0.5 to reduce size
fontsize = data$size * .pt* 0.5))
}

并且在绘制时,您可以取消显示图例标签,并使图例键更宽一些以适合文本。
ggplot(data, aes(y=y,x=x, label=ID, color=Group)) + 
geom_text(size=8) +
scale_color_manual(values=c("blue","red")) +
theme_classic() +
theme(legend.text = element_blank(),
legend.key.width = unit(1.5, "cm"))

关于保留标签的同时删除ggplot图例符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46005015/

25 4 0