Mathematica 中如何画空间离散点.二维点的话,我知道怎么花,可是三维的点呢?用的什么命令?还有一个问题,就是,如何进行四维的绘图呢.比如 k=f[a,b,c],有没什么办法?个人猜想就是,利用 可以利用

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 02:42:48

Mathematica 中如何画空间离散点.二维点的话,我知道怎么花,可是三维的点呢?用的什么命令?还有一个问题,就是,如何进行四维的绘图呢.比如 k=f[a,b,c],有没什么办法?个人猜想就是,利用 可以利用
Mathematica 中如何画空间离散点.
二维点的话,我知道怎么花,可是三维的点呢?
用的什么命令?
还有一个问题,就是,如何进行四维的绘图呢.比如 k=f[a,b,c],有没什么办法?
个人猜想就是,利用 可以利用颜色的深浅进行表示?

Mathematica 中如何画空间离散点.二维点的话,我知道怎么花,可是三维的点呢?用的什么命令?还有一个问题,就是,如何进行四维的绘图呢.比如 k=f[a,b,c],有没什么办法?个人猜想就是,利用 可以利用
如果颜色也算上的话,考虑到三原色的原理,颜色可以体现3个维度,再加上长宽高的话,就有6个维度了.如果再考虑点的不同形状和大小的话就可以画出更高的维度了,但是画出来了,机器可以分辨,眼睛却未必可以分辨.
举一个例子:
下面是保存在E盘下的一个Excel文件chengji.xls的内容(你可以将下面的内容复制粘贴到Excel中,取名为chengji.xls,保存到E盘,然后运行后面的Mathematica 代码):
xuehao shuxue yuwen waiyu wuli huaxue shengwu
1 14 31 98 53 9 97
2 61 28 12 32 64 2
3 48 54 40 26 25 47
4 12 0 66 93 31 45
5 14 2 83 30 54 5
6 33 3 97 20 38 67
7 15 82 63 2 6 25
8 10 91 34 14 63 75
9 80 95 29 84 59 96
10 71 78 89 69 68 55
11 18 83 34 92 31 20
12 33 39 85 68 17 86
13 63 33 37 51 64 19
14 97 25 30 30 7 52
(*下面是Mathematica 代码*)
arr = Import["E:\\chengji.xls","Data"][[1]];
len = Length@arr;
Table[tu[i] =
ListPointPlot3D[{Table[arr[[i,j]],{j,1,3}]},
AxesLabel -> Table[arr[[1,m]],{m,1,3}],
PlotStyle ->
Directive[PointSize[arr[[i,7]]/1000],
RGBColor[Table[arr[[i,k]]/100,{k,4,6}]]]],{i,2,len}];
Show[Table[tu[i],{i,2,len}],
PlotRange -> {{1,len - 1},{0,100},{0,100}}]
(*下面是说明*)
运行后会绘制一些散点,x坐标是学号,y坐标是数学成绩,z坐标是语文成绩,
散点的颜色是按照红绿蓝三原色绘制的,其中红色分量是外语成绩,绿色分量是物理成绩,蓝色分量是化学成绩,
散点的半径代表生物成绩.
这就是你所说的七维图吗?其实维度还可以增加的,比如变化点的形状就行了.
那就加分吧.你给的分太少了.
如果你不想进行Excel操作,那么我把导入到Mathematica 中的数据直接写入,你可以直接运行下面的代码就可以了.
arr = {{"xuehao","shuxue","yuwen","waiyu","wuli","huaxue",
"shengwu"},{1.,14.,31.,98.,53.,9.,97.},{2.,61.,28.,12.,
32.,64.,2.},{3.,48.,54.,40.,26.,25.,47.},{4.,12.,0.,
66.,93.,31.,45.},{5.,14.,2.,83.,30.,54.,5.},{6.,33.,
3.,97.,20.,38.,67.},{7.,15.,82.,63.,2.,6.,25.},{8.,
10.,91.,34.,14.,63.,75.},{9.,80.,95.,29.,84.,59.,
96.},{10.,71.,78.,89.,69.,68.,55.},{11.,18.,83.,34.,
92.,31.,20.},{12.,33.,39.,85.,68.,17.,86.},{13.,63.,
33.,37.,51.,64.,19.},{14.,97.,25.,30.,30.,7.,52.}};
len = Length@arr;
Table[tu[i] =
ListPointPlot3D[{Table[arr[[i,j]],{j,1,3}]},
AxesLabel -> Table[arr[[1,m]],{m,1,3}],
PlotStyle ->
Directive[PointSize[arr[[i,7]]/1000],
RGBColor[Table[arr[[i,k]]/100,{k,4,6}]]]],{i,2,len}];
Show[Table[tu[i],{i,2,len}],
PlotRange -> {{1,len - 1},{0,100},{0,100}}]

ListPlot3D[{x,y,z}]
或用Point这个函数
关键有了每个点的列表就方便了,