R语言-15\Matlab\Mathematic三维图像

R语言lattice包三维散点图

实现效果:不同starRating水平下,数据在log(reviewCount)和score,discount三个维度的空间的数据分布。

代码

library('lattice')
cloud(log(reviewCount) ~ score*discount |  starRating,data=all,scales=list(arrows=FALSE))

#lattice图形不受par()函数的影响,它使用的默认设置在一个大的列表对象中,
#可以通过trellis.par.get()函数获得并通过trellis.par.set()函数更改。
mysettings <- trellis.par.get()
names(mysettings)
#修改Z轴标签文本大小。
mysettings$par.zlab.text$cex<-0.8
trellis.par.set(mysettings)
update(mygraph)

参数解释:
log(reviewCount) ~ score*discount | starRating,表示绘制的公式,log(reviewCount)是z坐标变量
score是横坐标变量,discount是纵坐标变量,starRating是分类变量。
data=all指定数据集为all,
scales=list(arrows=FALSE)显示刻度,如果要指定坐标轴的范围,可以用xlim=c(2,10),ylim...,
坐标轴文本添加xlab,ylab,参数和其它绘图函数比较像。

结果:


image.png

matlab三维曲面图

实现原理类似于将两个自变量m,x变成笛卡儿积的一一对应方阵,然后计算出每个(m,x)的y值再画三维图像,所以m,x取值范围需一样

m=[-10:70]
x=[-10:70]
[m,x]=meshgrid(m,x) 
y=4.71+0.02*x-0.0005*(x.^2)-0.0008*m*x+0.00002*m*(x.^2)+0.03*m
plot3(x,m,y)
legend('low','high')%加图例
xlabel("...")%x轴名字
ylabel("...")%y轴名字

mathematic三维曲面图

优点是m,x取值范围可以不一致,matlab应该也能做到,但没有探究

{x, 2, 10}, {m, 2, 9}表示取值范围

Plot3D[4.79-0.27*x-0.34*(x^2)-0.12*m*x-0.13*m*(x^2)+0.92*m, {x, 2, 10}, {m, 2, 9}]
AxesLabel -> {rating,Crating,log(reviewCount)}]

结果呈现类似这样(和上面代码不对应的)

image.png

你可能感兴趣的:(R语言-15\Matlab\Mathematic三维图像)