3D,从X,Y,Z数据,Excel或其他工具绘图

我有这样的数据:

1000 13 75.2 1000 21 79.21 1000 29 80.02 5000 29 87.9 5000 37 88.54 5000 45 88.56 10000 29 90.11 10000 37 90.79 10000 45 90.87 

我想用第一列作为x轴标签,第二列作为y轴标签,第三列作为z值。 我想以这种方式显示曲面。 做这个的最好方式是什么? 我尝试过Excel,但没有真正得到任何地方。 有没有人有任何build议的工具来做到这一点? 有谁知道如何在Excel中做到这一点?

谢谢

我结束了使用matplotlib 🙂

 from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm import matplotlib.pyplot as plt import numpy as np x = [1000,1000,1000,1000,1000,5000,5000,5000,5000,5000,10000,10000,10000,10000,10000] y = [13,21,29,37,45,13,21,29,37,45,13,21,29,37,45] z = [75.2,79.21,80.02,81.2,81.62,84.79,87.38,87.9,88.54,88.56,88.34,89.66,90.11,90.79,90.87] fig = plt.figure() ax = fig.gca(projection='3d') ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.2) plt.show() 

结果很甜蜜

你真的不能将3列数据显示为“表面”。 只有一列“Z”数据会给你一个三维空间的行,而不是一个表面(或者在你的数据的情况下,3个单独的行)。 要使Excel能够处理这些数据,需要格式化为如下所示:

  13 21 29 37 45 1000 75.2 1000 79.21 1000 80.02 5000 87.9 5000 88.54 5000 88.56 10000 90.11 10000 90.79 10000 90.87 

然后,要得到一个实际的表面,你需要用适当的Z值填充所有缺失的单元格。 如果你没有这些,那么你最好将其显示为3条独立的2D线,因为表面没有足够的数据。

Excel将给你的上述数据的最好的3D表示是相当混乱的:

在这里输入图像说明

将这个有限的数据集表示为二维数据可能是更好的select:

在这里输入图像说明

作为未来的参考,这些types的问题通常会在superuser.com上稍微好一点。

您可以使用r库进行3D绘图。

步骤是:

首先使用data.frame()命令创build一个数据框。

使用scatterplot3D库创build3D图。

或者您也可以使用plot3d()命令使用rgl库来旋转图表。

或者,您可以使用rcmdr库中的plot3d()命令。

在MATLAB中,可以根据需要使用surf(),mesh()或surfl()命令。

[ http://in.mathworks.com/help/matlab/examples/creating-3-d-plots.html%5D

您也可以使用也可从gretl获得的Gnuplot 。 把你的xyz数据放在一个文本文件中插入以下内容

 splot 'test.txt' using 1:2:3 with points palette pointsize 3 pointtype 7 

然后你可以使用设置标签等

 set xlabel "xxx" rotate parallel set ylabel "yyy" rotate parallel set zlabel "zzz" rotate parallel set grid show grid unset key 

为什么不合并包含相同值的行? –

  13 21 29 37 45 
  • 1000] -75.2-79.21-80.02

  • 5000] ——————— 87.9 — 88.54 —- 88.56

  • 10000] ——————- 90.11–90.97 —- 90.87

Excel可以很好地使用