代码语言:javascript复制
dat0=read.table("3d_scatter_plot.txt",header=TRUE,sep="t")
head(dat0)
dat1 = dat0[,-1]
rownames(dat1) = dat0[,1]
color = c(rep('red',3),rep('orange',3),rep('blue',3))
scatterplot3d包绘制3维散点图
代码语言:javascript复制#draw 3d plot--1
library(rgl)
plot3d(dat1)
#调整
plot3d(dat1,col=color,
type="s",radius=0.03,
grid=50L,pch=16)
代码语言:javascript复制#draw 3d plot--2
library(scatterplot3d)
scatterplot3d(dat1)
#调整
scatterplot3d(dat1,main='3D plot',color=color,type='p',
highlight.3d=F,angle=60,grid=T,box=T,scale.y=1,
cex.symbols=1.2,pch=16,col.grid='lightblue')
legend("topright",c('Control','Drug','Surgery'),fill=c('red','orange','blue'),box.col="grey")
有时候不知道角度,可以一次绘制多个,选择你觉得合适的图,下面代码会产生一个pdf文件。可以从里面选择最优的一个。
代码语言:javascript复制#调整角度,保存
pdf('3d_scatter_plot.pdf',onefile=TRUE,width=8,height=8)
diffangle <- function(ang){
scatterplot3d(dat1,main='3D plot',color=color,type='p',
highlight.3d=F,angle=ang,grid=T,box=T,scale.y=1,
cex.symbols=1.2,pch=16,col.grid='lightblue')
legend("topright",c('Control','Drug','Surgery'),fill=c('red','orange','blue'),box.col="grey")
}
#Produce a figure when the angle rotates
sapply(seq(-360,360,2),diffangle)
dev.off()