如何使色标误差线遵循色标?

Ben*_*Ben 6 r colorbar plotly errorbar

首先,我说过我已经尝试了在散布散点图中的颜色编码错误栏中概述的方法,但是我无法使它们起作用。据我所知,在图版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'))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

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'))
Run Code Online (Sandbox Code Playgroud)

色条不良

hmh*_*sen 8

上的文档r plotly可能会有点缺乏。我认为这是您正在寻找的东西。您要使用name参数。双方colorname必须包括在内。我们必须name手动定义参数的级别。我们也可以设置color因数,但随后我们失去了颜色渐变。colors让我们使用RColorBrewer调色板更改调色板。

plot_ly() %>%
  add_markers(x = x.data, 
              y = y.data, 
              showlegend = F, # must hide legend here or it shows up twice
              name = factor(z.data, levels = z.data, labels = z.data), # this is missing
              color = z.data, 
              colors = "Set1", 
              error_x = list(array = x.err),
              error_y = list(array = y.err))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明