R plotly:无法更改颜色渐变

4
我正在使用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个回答

5

看起来你引用的文档页面已经过时了,这是Plotly存在缺陷的一个例子。

从文档中可以得知,
颜色标度:颜色标度必须是一个包含将归一化值映射到rgb、rgba、hex、hsl、hsv或命名颜色字符串的数组。最少需要映射最低(0)和最高(1)值。例如:[[0,'rgb(0,0,255)'],[1,'rgb(255,0,0)']]。要在颜色空间中控制颜色标度的边界,请使用cmincmax

要将其转换为可用的R代码,请参见此问题:R,如何更改plotly 3d表面的颜色?

因此,对于你上述的问题,以下是可能的解决方案:

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))

可用选项包括:灰度、黄绿蓝、绿色、黄橙红、蓝红、红蓝、红色、蓝色、野餐、彩虹、波特兰、喷气、热力图、黑体、地球、电气、维利迪斯、西维迪斯。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接