Позвольте мне начать с того, что я пробовал методы, описанные в Цветовое кодирование полосы ошибок на графике разброса, но мне не удалось заставить их работать. Из того, что я могу сказать, были изменения в том, как обрабатываются колораксы в plotly версии 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'))