Изменить заголовки легенды в R Plotly - PullRequest
0 голосов
/ 05 июля 2018

Я использую следующий код для создания трехмерной диаграммы рассеяния с векторами в студии Plotly - R. В настоящее время метки легенды отображаются как «трассировка 1, трассировка 2 и т. Д.», Но я хотел бы изменить это с помощью своего собственного текста. Есть идеи как этого добиться?

#Define the data from df to be plotted, basically three columns of a data frame
x = df[,1]
y = df[,2]
z = df[,3]

#Scatter and Axis Labels
p <- plot_ly() %>%
  add_trace(x=x, y=y, z=z,
            type="scatter3d", mode="markers",
            marker = list(color=y, 
                          colorscale = 'Viridis', 
                          opacity = 0.02,showscale = F)) %>% 
  layout(title = "TITLE",
         scene = list(
           xaxis = list(title = "LABEL 1"), 
           yaxis = list(title = "LABEL 2"), 
           zaxis = list(title = "LABEL 3")))


#Add Vectors to the Plot  
for (k in 1:nrow(df_vector)) {
  x <- c(0, df_vector[k,1])
  y <- c(0, df_vector[k,2])
  z <- c(0, df_vector[k,3])
  p <- p %>% add_trace(x=x, y=y, z=z,
                       type="scatter3d", mode="lines",
                       line = list(width=8),
                       opacity = 1)
}

1 Ответ

0 голосов
/ 05 июля 2018

Используйте аргумент name для add_trace. Я смоделировал некоторые данные ниже, но в будущем имейте в виду, что полезно включать легко читаемые примеры данных, используя (например) dput.

library(plotly)
## Reproducible by setting RND seed
set.seed(42)
## Define the data from df to be plotted, basically three columns of a data frame
df <- data.frame(x = rnorm(100), y = rnorm(100), z = rnorm(100))

## Scatter and Axis Labels
p <- plot_ly(df) %>%
    add_trace(x=~x, y=~y, z=~z,
        type="scatter3d", mode="markers",
        name = "markers"
        # ,
        # marker = list( 
        #     colorscale = 'Viridis', 
        #     opacity = 0.02,showscale = F)
        ) %>% 
    layout(title = "TITLE",
        scene = list(
            xaxis = list(title = "LABEL 1"), 
            yaxis = list(title = "LABEL 2"), 
            zaxis = list(title = "LABEL 3")))


#Add Vectors to the Plot  
for (k in 1:nrow(df[1:3, ])) {
    x <- c(0, df[k, 1])
    y <- c(0, df[k, 2])
    z <- c(0, df[k, 3])
    p <- p %>% add_trace(x=x, y=y, z=z,
        name = paste("my trace name", k),
        type="scatter3d", mode="lines",
        line = list(width=8),
        opacity = 1)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...