R密谋:无法更改颜色渐变

时间:2020-04-24 15:22:13

标签: r shiny plotly

我正在使用plotly在具有颜色渐变的闪亮应用程序中渲染3D散点图。尽管基本的散点图本身没有问题,但即使对于此处提供的示例,https://plotly.com/r/3d-scatter-plots/似乎也无法更改颜色渐变的颜色。 (请参见代码段)。

我尝试了使用标准颜色和十六进制代码的多种颜色组合。

library(plotly)

fig <- plot_ly(mtcars, x = ~wt, y = ~hp, z = ~qsec,
               marker = list(color = ~mpg, colorscale = c('#FFE1A1', '#683531'), showscale = TRUE))
fig <- fig %>% add_markers()
fig <- fig %>% layout(scene = list(xaxis = list(title = 'Weight'),
                                   yaxis = list(title = 'Gross horsepower'),
                                   zaxis = list(title = '1/4 mile time')),
                      annotations = list(
                        x = 1.13,
                        y = 1.05,
                        text = 'Miles/(US) gallon',
                        xref = 'paper',
                        yref = 'paper',
                        showarrow = FALSE
                        ))
fig


任何帮助将不胜感激。 干杯

1 个答案:

答案 0 :(得分:1)

您上面引用的文档页面似乎已过时。这是一个有怪癖的例子。

在文档中,色标:色标必须是一个数组,其中包含将规范化值映射到rgb,rgba,hex,hsl,hsv或命名的颜色字符串的数组。至少需要最低(0)和最高(1)值的映射。例如,[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]。要控制色彩空间中色阶的范围,请使用cmincmax

要将其转换为可用的R,请参见以下问题:R, How to change color of plotly 3d surface?

因此,对于您在上面的问题,这里是一个可能的解决方案:

plot_ly(mtcars, x = ~wt, y = ~hp, z = ~qsec, 
        marker = list(color = ~mpg, colorscale = list(c(0, 1), c("yellow", "blue")), showscale = TRUE))

另一种选择是在此行中使用ColorBrewer和其他预定义的调色板:

plot_ly(mtcars, x = ~wt, y = ~hp, z = ~qsec, 
        marker = list(color = ~mpg, colorscale = "Greens", showscale = TRUE))

可用选项包括:灰色,YlGnBu,绿色,YlOrRd,蓝红色,RdBu,红色,蓝色,野餐,彩虹,波特兰,喷射,热,黑体,地球,电,绿箭,Cividis。