我有这个使用scatterplot3d
的R脚本:
library(scatterplot3d)
attach(mtcars)
rgb <- read.csv(file="rgb-data.csv",head=TRUE,sep=",")
scatterplot3d(rgb$R,rgb$G,rgb$B,
xlim=c(0,255), ylim=c(0,255),zlim=c(0,255),
xlab="R", ylab="G", zlab="B", pch=".",
main=paste("Feature Space"))
rgb-data.csv
的示例数据是:
R,G,B
12,48,126
127,12,48
46,127,12
它产生情节:
我正在寻找4个变化:
让(0,0,0)点成为立方体中最前面的点,最中心点,而不是绘图左下角的点。这可能吗?
让每个点的颜色反映每个点的R,G和B值。例如。在上述数据集中(12,48,126)
,该点的R值为12,G为48,B为126.这可能吗?
R脚本中的X,Y和Z轴范围为0到255。但是,在图中它们的范围从0到300.我希望生成的图中轴的范围为0到255。这可能吗?
“B”和“G”轴标签旋转270度。我希望它们的方向与“R”轴标签相同。这可能吗?
答案 0 :(得分:0)
我不确定我是否正确理解了第一个问题。但是,这是代码。
xlim
,ylim
,zlim
rgb
)x.ticklabs
,y.ticklabs
,z.ticklabs
代码
library(scatterplot3d)
R <- sample(0:255, 100)
G <- sample(0:255, 100)
B <- sample(0:255, 100)
RGB_ <- rgb(R/255, G/255, B/255)
r_ticks <- c(-255, -200, -100, 0, 100, 200, 255)
ticks <- c(0, 50, 100, 150, 200, 250, 255)
scatterplot3d(R, G, B,
xlim=c(-255, 255),
ylim=c(0, 255),
zlim=c(0, 255),
color=RGB_,
x.ticklabs=r_ticks,
y.ticklabs=ticks,
z.ticklabs=ticks)
答案 1 :(得分:0)
- 让(0,0,0)点成为立方体中最前面的点,最中心,而不是图中左下角的点。这可能吗?
醇>
在angle=140
中设置scatterplot3d( )
,提供了与所需图表相近的内容:
(0,0,0)位置位于图底部的中心位置。我还设想R和G轴略微向上倾斜到0到255的距离。
- 让每个点的颜色反映每个点的R,G和B值。例如。 (12,48,126)在上面的数据集中,该点的R值为12,G为48,B为126.这可能吗?
醇>
基于Mo K answer,添加
color=rgb(dat$R, dat$G, dat$B, maxColorValue = 255)
如果将原始变量重命名为scatterplot3d( )
,到dat
会产生预期的效果,即
dat <- read.csv(file="rgb-data.csv",head=TRUE,sep=",")
- R脚本中的X,Y和Z轴范围为0到255。但是,在图中它们的范围从0到300.我希望生成的图中轴的范围为0到255。这可能吗?
醇>
Mo K answer有效。添加
ticks <- c(0, 50, 100, 150, 200, 250, 255)
然后
x.ticklabs=ticks,
y.ticklabs=ticks,
z.ticklabs=ticks
到scatterplots3d( )
。
- “B”和“G”轴标签旋转270度。我希望它们的方向与“R”轴标签相同。这可能吗?
醇>
我还没有找到解决方案。