对于ggplot2中的标签(例如https://github.com/substack/js-traverse)或标签的阴影文本(例如ggrepel和ggshadowtext),有一些不错的解决方案。但是没有什么可以让我们结合这两个功能。
我尝试了这种可在标签略有不同的位置多次打印标签的黑客,但对于stretch
来说效果不佳
geom_text_repel
这非常慢,并且在标签靠近的位置,此方法无效:
我们如何获得与library(ggplot2)
# subset data
d <- diamonds[1:20,]
# make plot
p <- ggplot(d, aes(carat, price)) +
geom_point()
# make halo layers
theta <- seq(pi / 8, 2 * pi, length.out = 16)
xo <- diff(range(d$carat)) / 200
yo <- diff(range(d$price)) / 200
for (i in theta) {
p <- p +
geom_text_repel(data = d,
aes_q(x = bquote(carat + .(cos(i) * xo)),
y = bquote(price + .(sin(i) * yo)),
label = ~cut),
size = 6,
colour = 'black',
seed = 1,
segment.colour = NA)
}
# update plot with halo and interior text
p <- p + geom_text_repel(aes(label = cut),
size = 6,
colour = 'white',
seed = 1,
segment.colour = "grey80")
p
兼容的阴影文字?一段时间之前,我向ggrepel GitHub存储库发送了此消息,但没有回复(也许不可能吗?)
答案 0 :(得分:1)
此功能现已added已加入ggrepel软件包,真棒!
library(ggrepel)
library(ggplot2)
dat <- mtcars
dat$car <- rownames(dat)
ggplot(dat) +
aes(wt,
mpg,
label = car) +
geom_point(colour = "red") +
geom_text_repel(bg.color = "white",
bg.r = 0.25)