R Plot_ly: Как изменить цветовую палитру цветовой палитры и значения порога цвета? - PullRequest
1 голос
/ 18 апреля 2020

Я пытаюсь построить трехмерную диаграмму рассеяния (диаграмма рассеяния PCA первых 3-х измерений), но не могу найти способ изменить цветовую шкалу на plot_ly.

Код приведен ниже, и вот что я получаю но я бы хотел, чтобы оно было go от красного (большинство отрицательных значений) до зеленого (верхние значения) с точкой поворота (исчезает розовый) для значения 0, а не +18 ‰, как это кажется на графике.

Вы можете мне помочь?

enter image description here

ind5<-get_pca_ind(PCA_data5)
a<-ind5$coord[,1]
b<-ind5$coord[,2]
c<-ind5$coord[,3]
d<-Interviews$`Annual_SOC_rate_‰`

f1 <- list(
  family = "Times New Roman",
  size = 20,
  color = "black")


fig <- plot_ly(Interviews, x = ~a, y = ~b, z = ~c,
               marker = list(color = ~d,
                             colorbar=list(tickfont=f1),
                             showscale = TRUE))
fig <- fig %>% add_markers()
fig <- fig %>% layout(scene = list(xaxis = list(title = 'Dim1 (18.8%)',
                                                titlefont = f1,
                                                tickfont = f1),
                                   yaxis = list(title = 'Dim2 (16.3%)',
                                                titlefont = f1,
                                                tickfont = f1),
                                   zaxis = list(title = 'Dim3 (13.2%)',
                                                titlefont = f1,
                                                tickfont = f1)),
                      annotations = list(
                        x = 1.13,
                        y = 1.05,
                        text = 'Annual SOC change rate (‰)',
                        font=f1,
                        xref = 'paper',
                        yref = 'paper',
                        showarrow = FALSE
                      ))
fig

1 Ответ

1 голос
/ 18 апреля 2020

попробуйте это вместо

fig <- plot_ly(Interviews, x = ~a, y = ~b, z = ~c,
               marker = list(color = ~d,
                             colorbar=list(tickfont=f1),
                             colorscale = list(c(0,'red'),
                                               c(0.5,'pink'),
                                               c(1, 'green'))))

или это

fig <- plot_ly(Interviews, x = ~a, y = ~b, z = ~c,
               intensity = ~d,
               colorscale = list(c(0,'red'),
                                 c(0.5,'pink'),
                                 c(1, 'green')))


...