我有一些这样的数据:
data <- data.frame(x=runif(500), y=runif(500), z=runif(500))
我想要一个散点图,其中每个点都使用RGB值在每个维度(X,Y和Z)上独立/离散地着色。
这是我尝试过的:
代码:
library(dplyr)
library(plotly)
xyz_colors <- rgb(data$x, data$y, data$z)
plot_ly(data = data,
x = ~x, y = ~y, z = ~z,
color= xyz_colors,
type = 'scatter3d',
mode='markers') %>%
layout(scene = list(xaxis = list(title = 'X'),
yaxis = list(title = 'Y'),
zaxis = list(title = 'Z')))
情节:
RColorBrewer认为我正在尝试从500种中间色创建连续刻度:
Warning messages:
1: In RColorBrewer::brewer.pal(N, "Set2") :
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
2: In RColorBrewer::brewer.pal(N, "Set2") :
n too large, allowed maximum for palette Set2 is 8
Returning the palette you asked for with that many colors
用Plotly在R中为这样的点着色的正确方法是什么? 另外,通常如何用Plotly为R中的数据点分配颜色?
为澄清起见,我尝试为颜色为“ #XXYYZZ”格式的每个点上色,其中“ XX”是介于00和FF之间的值,线性映射到data $ x的值(从0到1)。 ,X尺寸确定红色的量,Y尺寸确定绿色的量,Z尺寸确定蓝色的量。在0,0,0处该点应为黑色,在1,1,1处该点应为白色。这样做的原因是为了使可视化点的3D位置尽可能容易。
答案 0 :(得分:0)
在3D图中,您可以对所有点使用相同的颜色,可以使用不同的颜色彼此区分不同的聚类或类别,也可以对每个点使用单独的颜色来说明第四个值(如果愿意,可以使用第四个维度) ,如Kombu's list of supported transports中所述)。正如您所言,所有这些方法都是'[...] correct ways to color the points [...]'
的示例。请在下面查看,看是否满足您的需求。我将fourthVal <- data$x+data$y+data$z
作为一个额外维度的示例。最终使用的内容将完全取决于您的数据集以及您要说明的内容。
代码:
library(dplyr)
library(plotly)
data <- data.frame(x=runif(500), y=runif(500), z=runif(500))
xyz_colors <- rgb(data$x, data$y, data$z)
fourthVal <- data$x+data$y+data$z
plot_ly(data = data,
x = ~x, y = ~y, z = ~z,
color= fourthVal,
type = 'scatter3d',
mode='markers') %>%
layout(scene = list(xaxis = list(title = 'X'),
yaxis = list(title = 'Y'),
zaxis = list(title = 'Z')))
情节: