如何避免使用text_layer进行过度绘图?

时间:2016-09-29 15:34:18

标签: r ggvis

我有一个图表,其中layer_text元素过度绘图:

data.frame(label=c("First", "Second","First","Second"), x=c(100,100,20,20),y=c(100,100,20,20)) %>% 
  ggvis(~x,~y) %>% 
  layer_text(text:=~label)

我想偏移文本以使其可读。我想在y时调整==值,但图表需要进入一个闪亮的应用程序,我最终可能会有超过2个重叠文本。这就是为什么我想知道是否有任何包/属性可以提供更稳定的解决方案。

解决方案应该如下所示:

data.frame(label=c("First", "Second","First","Second"),    x=c(100,100,20,20),y=c(100,98,20,18)) %>% 
  ggvis(~x,~y) %>% 
  layer_text(text:=~label)

1 个答案:

答案 0 :(得分:0)

标签放置是一个众所周知的棘手问题。 ggrepel实现了一个很好的算法解决方案,但它不适用于ggvis,只有ggplot2

library(ggplot2)
library(ggrepel)
library(magrittr)

data.frame(label=c("First", "Second","First","Second"), 
           x=c(100,100,20,20),
           y=c(100,100,20,20)) %>% 
  ggplot(aes(x,y,label=label)) +
  geom_text_repel() +
  theme_bw()

enter image description here