2016-09-29 132 views
0

我有一個圖表,其中layer_text元件overplot:如何避免與text_layer重疊繪圖?

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) 

回答

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