如何利用Mathematica将excel数据作三维图
1个回答
2016-08-31
展开全部
首先将excel三维图表数据点按照x,y,z三个坐标轴分别按三行排列好,如下图所示;
2
我们可以直接使用excel的插入图表功能先观察一下excel绘制的图表,就能发现excel可以分别对xy,yz,xz三组数据画出很优美的二维图表,然而三维数据图表却无能为力;
3
现在打开mathematica,输入代码:
Clear["Global`*"]
i = Import["G:\\dzw\\Subjects\\FreeWake\\Data\\wakexyz.xlsx"]
运行即可导入对应excel文件的数据点,mathematica能够识别xlsx,xls,csv等一系列excel能识别的数据文件,所以直接导入文件不用担心无法识别
通过观察我们发现该导入数据由mathematica转化成了矩阵的形式保存,但是多出了{x,y,z}这一项;
于是我们通过提取该数据第一项以后的数据来构建一个新的矩阵,代码为:excel = Table[excel0[[1, i]], {i, 2, excelN}]
其中excelN为excel数据列长度;
将上述矩阵转置,我们就能得到其转置矩阵并能够分别提取出x,y,z三列数据,就和在excel文档中的数据一致;
接下来我们就先来看看每个对应的二维图例是否和excel一致,分别用Table函数提取对应坐标数据,并用ListLinePoint函数作图,下图所示为xy坐标轴数据及其图像;
下图对应为xz坐标轴数据及其图像
下图对应为yz坐标轴的数据及其图像,通过对比我们发现这和excel完全一致;
既然二维一致,那么我们就来看一看三维图表,本文我们所使用的函数为ListPointPlot3D,具体代码为:ListPointPlot3D[excel, ColorFunction -> "DarkRainbow"];
我们发现该图太小不利于查看,所以我选取新的代码,将图中点变大,图形放大,简化风格以利于查看,具体代码为:
ListPointPlot3D[excel, PlotTheme -> "Business",
PlotStyle -> PointSize[Large], ColorFunction -> "DarkRainbow",
ImageSize -> Full]
;
我们可以方便的查看该图形的三维视图,如下图所示;
最后,从便于观察的角度来说,我们还可以利用ListSurfacePlot3D函数绘制三维数据的曲面图形,更明朗的看出数据变化趋势,代码具体为:
ListSurfacePlot3D[excel, Mesh -> Automatic,
MeshStyle ->
Directive[GrayLevel[0], Opacity[1.], AbsoluteThickness[1.87]],
ImageSize -> Full, ColorFunction -> "DarkRainbow"]
,最终效果如图所示,这样我们excel数据的三维图做出来了吧,很简单高效吧,小伙伴们快去试试吧。
步骤阅读
2
我们可以直接使用excel的插入图表功能先观察一下excel绘制的图表,就能发现excel可以分别对xy,yz,xz三组数据画出很优美的二维图表,然而三维数据图表却无能为力;
3
现在打开mathematica,输入代码:
Clear["Global`*"]
i = Import["G:\\dzw\\Subjects\\FreeWake\\Data\\wakexyz.xlsx"]
运行即可导入对应excel文件的数据点,mathematica能够识别xlsx,xls,csv等一系列excel能识别的数据文件,所以直接导入文件不用担心无法识别
通过观察我们发现该导入数据由mathematica转化成了矩阵的形式保存,但是多出了{x,y,z}这一项;
于是我们通过提取该数据第一项以后的数据来构建一个新的矩阵,代码为:excel = Table[excel0[[1, i]], {i, 2, excelN}]
其中excelN为excel数据列长度;
将上述矩阵转置,我们就能得到其转置矩阵并能够分别提取出x,y,z三列数据,就和在excel文档中的数据一致;
接下来我们就先来看看每个对应的二维图例是否和excel一致,分别用Table函数提取对应坐标数据,并用ListLinePoint函数作图,下图所示为xy坐标轴数据及其图像;
下图对应为xz坐标轴数据及其图像
下图对应为yz坐标轴的数据及其图像,通过对比我们发现这和excel完全一致;
既然二维一致,那么我们就来看一看三维图表,本文我们所使用的函数为ListPointPlot3D,具体代码为:ListPointPlot3D[excel, ColorFunction -> "DarkRainbow"];
我们发现该图太小不利于查看,所以我选取新的代码,将图中点变大,图形放大,简化风格以利于查看,具体代码为:
ListPointPlot3D[excel, PlotTheme -> "Business",
PlotStyle -> PointSize[Large], ColorFunction -> "DarkRainbow",
ImageSize -> Full]
;
我们可以方便的查看该图形的三维视图,如下图所示;
最后,从便于观察的角度来说,我们还可以利用ListSurfacePlot3D函数绘制三维数据的曲面图形,更明朗的看出数据变化趋势,代码具体为:
ListSurfacePlot3D[excel, Mesh -> Automatic,
MeshStyle ->
Directive[GrayLevel[0], Opacity[1.], AbsoluteThickness[1.87]],
ImageSize -> Full, ColorFunction -> "DarkRainbow"]
,最终效果如图所示,这样我们excel数据的三维图做出来了吧,很简单高效吧,小伙伴们快去试试吧。
步骤阅读
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询