R Plotly 3d trace - как получить новые метки (не x, y, z)

Рассмотрим этот пример, взятый из Plotly:

library(plotly)
# volcano is a numeric matrix that ships with R
p <- plot_ly(z = ~volcano) %>% add_surface()
p

Обратите внимание на то, что при наведении указатель мыши отображает x (индексы строк из вашей матрицы), y (индексы столбцов) и z (содержимое матрицы в заданных строках и столбцах). Как я могу изменить трассировку и оси на что-то вроде "Measure1", "Measure2", "Measure3" вместо x,y, z? я пробовал layout() но то, что я положил, не разрезало это. Это то, что я пытался, но "Zaxis" не вещь, и другие ярлыки не меняются,

library(plotly)
# volcano is a numeric matrix that ships with R
p <- plot_ly(z = ~volcano) %>% add_surface() %>% 
layout (xaxis = list(title = "Measure1", showgrid = F),  
  yaxis = list(title = "Measure2"),
  zaxis = list(title="Measure3")
)

p

Я уверен, что упускаю что-то элементарное, но я застрял. Любая помощь тепло получила.

2 ответа

Решение

Чтобы продлить предыдущий ответ от пользователя 2510479:

Вы можете установить метки оси для графиков поверхности Plotly через scene а также xaxis/yaxis/zaxistitle,

Hoverinfo может быть установлен через text который должен быть массивом, который имеет те же размеры, что и ваши z-значения. hoverinfo нуждается в text для того, чтобы показать эти значения.

library(plotly)

txt <- array(dim=dim(volcano))
for (x in 0:dim(volcano)[[2]] - 1) {
  for (y in 0:dim(volcano)[[1]] - 1) {
    txt[1 + x*dim(volcano)[[1]] + y] = paste('Measure1: ', x, '<br />Measure2: ', y, '<br />Measure3: ', volcano[1 + x * dim(volcano)[[1]] + y])
  }
}
p <- plot_ly(z = volcano,
             text = txt,
             hoverinfo = 'text') %>% add_surface()
p <- layout(p, scene = list(xaxis = list(title = "Measure1"), 
                            yaxis = list(title = "Measure2"), 
                            zaxis = list(title = "Measure3")
                            )
            )

p
  p <- plot_ly(z = ~volcano) %>% add_surface() %>% 
  layout(title = "Layout options in Volcano plot",
  scene = list(
  xaxis = list(title = "Measure1"), 
  yaxis = list(title = "Measure2"), 
  zaxis = list(title = "Measure3")))

  p
Другие вопросы по тегам