2016-07-15 49 views
2

我在Plotly(對於R)中製作泡泡圖,並且我不斷獲取重疊標記。是否有辦法「縮小」所有標記,以便保留它們的相對大小,但沒有重疊?我想保持劇情的維度不變。這是一個測試案例:R Plotly:泡泡圖中的較小標記

test <- data.frame(matrix(NA, ncol=3, nrow=14)) 
colnames(test) <- c("Group", "Numbers", "Days") 
loop<- 1 
for(i in 1:7){ 
    test[i,] <- c(1, i, loop) 
    loop <- loop * 1.5 
} 
loop <- 1 
for(i in 1:7){ 
    test[i+7,] <- c(2, i, loop) 
    loop <- loop * 1.3 
} 
plot_ly(test, x=Group, y=Numbers, size=Days, mode="markers") 

booo overlapping markers

回答

4

的一種方式做這樣的事情是調整sizeref(和size)論點:

plot_ly(test, x=Group, y=Numbers, mode="markers", 
    marker = list(size = Days, sizeref = 0.15)) 

plot_ly(test, x=Group, y=Numbers, mode="markers", 
    marker = list(size = Days/2, sizeref = 0.1)) 

plot_ly(test, x=Group, y=Numbers, size = Days, mode="markers", 
    marker = list(sizeref = 2.5)) # Days data in the hoverinfo with this method 

https://plot.ly/r/reference/

sizeref(number )
默認值:1
僅當marker.size爲 設置爲數值數組時纔有效。設置用於確定標記點渲染大小的比例因子。與sizeminsizemode一起使用。

如果你想要的懸停文本,使其與原始的情節,你可以明確地定義它:

plot_ly(test, x=Group, y=Numbers, mode="markers", 
    marker = list(size = Days, sizeref = 0.15), 
    hoverinfo = "text", 
    text = paste0("(", Group, ", ", Numbers, ")<br>", "Days (size): ", Days)) 
+0

我見過的'sizeref',但不知道它必須用這種方式。非常感謝! –