直接标签和ggplot2的背景颜色?

3

这是一些测试数据:

y <- c(1:10, 6:15)
b <- c(rep(c("A", "B"), each=10))
x <- 1:10
df <- data.frame(b, x, y)

还有一个测试图表:

library(ggplot2)
library(directlabels)
p1 <- ggplot(df, aes(x=x, y=y, colour=b)) + geom_line()
direct.label(p1, list("first.points", hjust=-1, vjust=-0.5))

在此输入图片描述

我希望标签的背景是白色(在文字周围的矩形中)。有没有办法实现这个目的? 我试过使用fill="white"colour="white"background="white",但都无效。


你尝试过 theme_set(theme_bw()) 吗?也许会有警告,但它应该可以正常工作。 - Peter Lustig
3
这个问答可能会有帮助。 - Henrik
@Henrik,谢谢,my.dl <- list(box.color="white", "draw.rects"); direct.label(p1, list("first.points", hjust=-1, vjust=-0.5, "calc.boxes", "my.dl")) 可以用! - erc
@beetroot,你能否写出你的代码和结果图呢?谢谢。 - Henrik
@Henrik,好的,完成了! - erc
@beetroot,太好了!我认为你可以在48小时后接受自己的答案 - Henrik
2个回答

5

好的,感谢Henrik在这个问题中的评论,我想到了以下解决方案:

p1 <- ggplot(df, aes(x=x, y=y, colour=b)) + geom_line()

my.dl <- list(box.color="white", "draw.rects")
direct.label(p1, list("first.points", hjust=-1, vjust=-0.3, "calc.boxes", "my.dl"))

enter image description here


-1

你的代码唯一需要适应的是 theme_set(theme_bw())

y <- c(1:10, 6:15)
b <- c(rep(c("A", "B"), each=10))
x <- 1:10
df <- data.frame(b, x, y)

theme_set(theme_bw())  # added
library(ggplot2)
library(directlabels)
p1 <- ggplot(df, aes(x=x, y=y, colour=b)) + geom_line()
direct.label(p1, list("first.points", hjust=-1, vjust=-0.5))

enter image description here


1
谢谢,但这不是我要找的,我也想让信的背景变成白色。 - erc
啊,我明白了。抱歉,那么 @Henrik 的提示可能会有帮助! - Peter Lustig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接