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

时间:2013-04-08 14:36:33

标签: excel charts plot visualization data-visualization

我的数据如下:

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,但实际上并没有得到任何结果。有没有人对工具有什么建议呢?有谁知道如何在Excel中执行此操作?

由于

5 个答案:

答案 0 :(得分:13)

我最终使用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()

答案 1 :(得分:10)

您实际上无法将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表示非常令人困惑:

enter image description here

将此有限数据集表示为2D数据可能是更好的选择:

enter image description here

作为未来参考的注释,这些类型的问题通常会在superuser.com上做得更好。

答案 2 :(得分:0)

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

步骤是:

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

使用scatterplot3D库创建3D绘图。

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

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

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

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

答案 3 :(得分:0)

您还可以使用Gnuplot提供的gretl。将x y z数据放在文本文件上,插入以下内容

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

答案 4 :(得分:-1)

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

         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可以很好地使用它..