我正在使用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
任何帮助将不胜感激。 干杯
答案 0 :(得分:1)
您上面引用的文档页面似乎已过时。这是一个有怪癖的例子。
在文档中,色标:色标必须是一个数组,其中包含将规范化值映射到rgb,rgba,hex,hsl,hsv或命名的颜色字符串的数组。至少需要最低(0)和最高(1)值的映射。例如,[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]
。要控制色彩空间中色阶的范围,请使用cmin
和cmax
。
要将其转换为可用的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。