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
/zaxis
title
,
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