2016-07-15 4 views
2

Я делаю участок пузыря в Plotly (для R), и я продолжаю получать перекрывающиеся маркеры. Есть ли способ «масштабировать» все маркеры, чтобы их относительные размеры сохранялись, но нет перекрытия? Я хочу сохранить размеры сюжета одинаковыми. Вот тестовый пример:R Плот: Меньшие маркеры в пузырьковой диаграмме

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

Один из способов сделать такого рода вещи будет регулировать аргумент sizerefsize) в :

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 (номер)
Значение по умолчанию: 1
Имеет значение только в том случае, если marker.size является , установленным в числовой массив. Устанавливает масштабный коэффициент, используемый для определения размера маркерных точек . Используйте с sizemin и sizemode.

Если вы хотите текст парения, чтобы соответствовать свой оригинальный сюжет, вы можете определить его в явном виде:

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', но не знал, что должен был использоваться таким образом. Спасибо! –