Позвольте мне начать с того, что я попробовал методы, описанные в Строки ошибок цветового кодирования на графике точечного разброса , но я не смог заставить их работать. Из того, что я могу сказать, произошли изменения в том, как обрабатываются колораксы в сюжетной версии 4. Возможно, именно поэтому это больше не решает проблему.
Я хочу создать простую диаграмму рассеяния из двух переменных с барами ошибок для каждогопеременная. Мне бы хотелось, чтобы цвет точек и их полосок ошибок соответствовал шкале, определяемой третьей переменной. Мне не удалось сделать цвета панели ошибок соответствующими маркерам. Ниже приведены несколько простых методов, которые я попробовал, и их результаты.
set.seed(1)
x.data <- rnorm(20, 0, 1)
y.data <- rnorm(20, 2, 1)
x.err <- runif(20, 0.2, 0.8)
y.err <- runif(20, 0.2, 0.8)
z.data <- runif(20, 1.7, 2.8)
p <- plot_ly() %>%
add_markers(x=x.data, y=y.data,
error_x=list(array=x.err, color=z.data),
error_y=list(array=y.err, color=z.data),
marker=list(color=z.data, colorscale='Viridis',
colorbar=list(title='Z', limits=range(z.data)))) %>%
layout(xaxis=list(title='X'), yaxis=list(title='Y'))
z.norm <- (z.data - min(z.data))/(max(z.data)-min(z.data))
mycramp<-colorRamp(c("darkblue","yellow"))
mycolors<-rgb(mycramp(z.norm), maxColorValue = 255)
p <- plot_ly() %>%
add_markers(x=x.data, y=y.data,
error_x=list(array=x.err, color=mycolors),
error_y=list(array=y.err, color=mycolors),
marker=list(color=mycolors,
colorbar=list(title='Z', limits=range(z.data)))) %>%
layout(xaxis=list(title='X'), yaxis=list(title='Y'))