在plotly scatter3D中更改颜色

在plotly scatter3D中更改颜色,r,plotly,scatter3d,R,Plotly,Scatter3d,我已使用R中的plotly创建了以下三维散点图。 为此,我使用了以下代码 数据集txy仅包含每个标记的x、y、z坐标以及每个坐标点的0-1.5之间的值(在名为vectorM的列中) figfactor从文档中可以看出,问题在于颜色的格式错误。注意下面用粗体标记的部分 设置颜色比例。仅当在marker.line.color中设置为数字数组时才有效colorscale必须是一个包含数组的数组将规范化值映射到rgb、rgba、hex、hsl、hsv或命名颜色字符串。至少需要最低(0)和最高(1)值的映

我已使用R中的plotly创建了以下三维散点图。 为此,我使用了以下代码 数据集txy仅包含每个标记的x、y、z坐标以及每个坐标点的0-1.5之间的值(在名为vectorM的列中)

figfactor从文档中可以看出,问题在于颜色的格式错误。注意下面用粗体标记的部分

设置颜色比例。仅当在
marker.line.color
中设置为数字数组时才有效colorscale必须是一个包含数组的数组将规范化值映射到rgb、rgba、hex、hsl、hsv或命名颜色字符串。至少需要最低(0)和最高(1)值的映射。例如,
[[0,'rgb(0,0255)”,[1,'rgb(255,0,0)]]
。要控制颜色空间中颜色刻度的边界,请使用
marker.line.cmin
marker.line.cmax
。或者,
colorscale
可以是以下列表的调色板名称字符串:

  • 灰色、YlGnBu、绿色、YlOrRd、蓝红色、RdBu、红色、蓝色、野餐、彩虹、波特兰、喷气式飞机、炎热、黑体、地球、电力、绿色、雪茄
R
中,使用
array
或作为列表(或向量列表)的
列表创建数组。因此,我们可以通过两种方式获得全灰色:

  • 设置
    colorscale='Greys'
  • 将向量重新映射到向量列表
  • mtcars
    数据为例

    data(mtcars)
    library(plotly)
    plot_ly(mtcars, x = ~hp, y = ~cyl, z = ~mpg,
           type = 'scatter3d', mode = 'markers',
           marker = list(color = ~ hp,
                         # Use either a named palette in the above list:
                         #colorscale = 'Greys',
                         # Or use a list of vector scales.
                         colorscale = list(c(0, rgb(55, 55, 55, max = 255)), 
                                           c(1, rgb(244, 244, 244, max = 255))),
                         showscale = TRUE))
    

    请注意,
    line
    参数是不必要的,除非您特别想在点之间添加行,并且列表的顺序确实很重要(例如
    c(1,…)
    应该总是在之后
    c(0,…)

    您的问题几乎无法理解。请编辑问题并修复任何缺失的代码部分。问题编辑得更好。已提供答案。:-)谢谢,我现在有了Greys中的数字。另一个相关问题:我可以创建三个图并将它们组合到一个图形(三个图形相邻吗?您正在寻找或(可能仅在python中可用)。请记住上票并将答案标记为“答案”单击向上箭头和复选标记,以增加可见性,并帮助其他人在将来找到问题的答案。:-)
    data(mtcars)
    library(plotly)
    plot_ly(mtcars, x = ~hp, y = ~cyl, z = ~mpg,
           type = 'scatter3d', mode = 'markers',
           marker = list(color = ~ hp,
                         # Use either a named palette in the above list:
                         #colorscale = 'Greys',
                         # Or use a list of vector scales.
                         colorscale = list(c(0, rgb(55, 55, 55, max = 255)), 
                                           c(1, rgb(244, 244, 244, max = 255))),
                         showscale = TRUE))