如果您要绘制3D散点图,这很容易做到。下面的代码:
library(plotly)
library(tidyverse)
df = iris
plot_ly(df,
x=df$Sepal.Length,
y=df$Sepal.Width,
z=df$Petal.Length,
type="scatter3d",
mode="markers",
color=df$Petal.Width)
结果输出是:
我想将其绘制为表面图,但是当我将类型更改为“ surface”时,图像无法渲染,并且出现以下警告:
'surface' objects don't have these attributes: 'mode', 'marker'
[为了绘制表面,plot_ly
期望z
是矩阵。您可以使用surfacecolor
矩阵指定颜色。 plotly::schema()$traces$surface$meta$description
有一些有用的信息:
描述表面坐标的数据在
z
中设置。z
中的数据应为{2D数组}。x
和y
中的坐标可以可以是1D {arrays}或{2D arrays}(例如,以图形形式表示参数表面)。如果x
和y
中未提供,则x和y坐标为假设是线性的,从0开始以一个单位步进。色标默认情况下对应于z
值。对于自定义色标,请使用surfacecolor
应该是{2D数组},其边界可以是使用cmin
和cmax
控制。