Python 曲面图原始数据

Python 曲面图原始数据,python,numpy,matplotlib,Python,Numpy,Matplotlib,我正在寻找一种方法,将一些3D数据拟合到函数中,并使用Python绘制它 描述如何绘制三维曲面,但假设我们知道描述曲面的函数 在这种情况下,我如何导入下面的数据并使用plot_surface函数进行绘图,而不知道z=x*y x 1 2 3 4 y 1 1 2 3 4 2 2 4 6 8 3 3 6 9 12 4 4 8 12 16 5

我正在寻找一种方法,将一些3D数据拟合到函数中,并使用Python绘制它

描述如何绘制三维曲面,但假设我们知道描述曲面的函数

在这种情况下,我如何导入下面的数据并使用plot_surface函数进行绘图,而不知道z=x*y

    x   1   2   3   4
y                   
1       1   2   3   4
2       2   4   6   8
3       3   6   9   12
4       4   8   12  16
5       5   10  15  20

数据格式使用起来不是很方便,但是这里有一种读取数据的方法,忽略坐标,然后重新生成它们

import io
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

d = u"""    x   1   2   3   4
y                   
1       1   2   3   4
2       2   4   6   8
3       3   6   9   12
4       4   8   12  16
5       5   10  15  20"""

s = io.StringIO(d)
a = np.loadtxt(s, skiprows=2)
Z = a[:,1:] # ignore first column

x = np.arange(1,Z.shape[1]+1)
y = np.arange(1,Z.shape[0]+1)
X,Y = np.meshgrid(x,y)

fig = plt.figure()
ax = fig.gca(projection='3d')

surf = ax.plot_surface(X, Y, Z, cmap=plt.cm.coolwarm,
                       linewidth=0, antialiased=False)

plt.show()

在本教程中,使用meshgrid表示x和y位置,数组值表示z。如果这就是你上面所展示的,那么你就有了所有你需要的数据。我想我的问题是如何将这些值输入到示例中的Z变量中?我已经使用jupyther运行了这些示例,但是这些图看起来有点奇怪。我可以问一下您使用什么环境吗?这是Python 2.7 matplotlib 2.0中作为脚本运行的。有点奇怪是什么意思?–。绘制曲面时,不使用指示Z值的彩色正方形。它显示为一个蓝色的表面。您使用的是matplotlib 1.4还是1.5?在这种情况下,请坚持使用,其中需要使用rstride=1,cstride=1,。