2016-06-02 2 views
3

Я новичок в этой арене и надеялся получить помощь. Я только начинаю работать с Plotly и использую его для создания очень простого 3D Scatterplot, который моделирует некоторые полки и какие предметы есть где. Пока я строил «полку» и снимал сюжет, я хотел бы добавить аннотацию к тексту, указывающему, на каком полке я смотрю.
Here is the current output of my program и this is what I am trying to doДобавить Аннотацию к 3D Scatterplot in Plotly

Я попытался обзор документации и попытались добавить аннотацию (как у меня есть для 2D аналогов), и в то время как код компилируется, текст не отображается.

p <- plot_ly(all, x = X, y = Y, z = Z, 
    text = paste0("Candy: ", SKU,"; QTY: ", Qty), 
    color = OccupiedPct, 
    colors = cols, 
    hoverinfo = "text", 
    type = "scatter3d", mode = "markers") %>% 
layout(
    title = "Shelves" 
) 
sub <- list(
    x = 3, 
    y = 2, 
    z = 0, 
    text = "Shelf1", 
    xref = "x", 
    yref = "y", 
    zref = "z", 
    showarrow = FALSE 
) 
p %>% 
    layout(annotations = sub) 

Заранее спасибо! Майк

#

UPDATE Спасибо @MLavoie за ответ и извините за исключение воспроизводимого набора данных. К сожалению, я не смог воспроизвести то, что вы сделали. Я заметил, что ось z на вашем сюжете была установлена ​​на ноль, и я попытался свернуть мой без успеха. Однако, даже отрегулировав точку в диапазоне сюжетов, я все равно не смог ее отобразить. Вот сюжет я получил: Output , когда я запустил этот код

set.seed(100) 
d <- diamonds[sample(nrow(diamonds), 1000), ] 

p <- plot_ly(d, x = carat, y = price, z=depth, text = paste("Clarity: ",  clarity), 
     type="scatter3d", mode="markers") 

p %>% 
    add_trace(x = 2.5, y = 5000, z = 56, type = "scatter3d", text = "test", mode = "text") %>% 
    add_trace(x = 2.5, y = 15000, z = 56, type = "scatter3d", text = "test", mode = "text") %>% 
    layout(
    xaxis = list(range = c(0, 5)), 
    yaxis = list(range(0,20000)), 
    zaxis = list(range(0,100)), 
    showlegend = FALSE) 

В интересах полноты, вот моя сессия информация:

R version 3.2.1 (2015-06-18) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 8 x64 (build 9200) 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] plotly_2.0.16 ggplot2_2.0.0 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.3  digest_0.6.9  grid_3.2.1  plyr_1.8.3  R6_2.1.2   jsonlite_0.9.19 gtable_0.1.2  magrittr_1.5  scales_0.3.0  httr_1.1.0  
[11] viridis_0.3.2 tools_3.2.1  htmlwidgets_0.5 munsell_0.4.2 yaml_2.1.13  base64enc_0.1-3 colorspace_1.2-6 htmltools_0.3 gridExtra_2.0.0 

Еще раз спасибо!

+0

вы можете обеспечить воспроизводимый пример? – MLavoie

+0

Мне жаль, что я этого не делал! Я вижу, вы уже ответили на вопрос, поэтому я собираюсь проверить это, хотя это похоже на ответ. Еще раз спасибо @ Mlavoie и извините за неполноту моего поста. – MVWyck

ответ

2

Использование диафрагмы набора данных (вы не обеспечили воспроизводимый пример), вы можете попробовать:

set.seed(100) 
d <- diamonds[sample(nrow(diamonds), 1000), ] 

p <- plot_ly(d, x = carat, y = price, z=depth, text = paste("Clarity: ", clarity), 
     type="scatter3d", mode="markers") 

p %>% 
add_trace(x = 2.5, y = 5000, z = 0, type = "scatter3d", text = "test", mode = "text") %>% 
add_trace(x = 2.5, y = 15000, z = 0, type = "scatter3d", text = "test", mode = "text") %>% 
layout(showlegend = FALSE) 

enter image description here

+0

Привет @MLavoie, я не мог заставить это работать и включил мою попытку в исходный пост, если бы вы не прочь взглянуть еще раз. Спасибо! – MVWyck

+0

Когда я запускаю ваш код, у меня нет проблем, но у меня есть другая сюжетная версия (plotly_3.4.13). попробуйте обновить и перезапустить код. – MLavoie

+0

Вот и все! Огромное спасибо!!! Мне пришлось обновить сюжет и ggplot2, но теперь это работает. – MVWyck

Смежные вопросы