Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib三维曲面图未显示_Python_Matplotlib_Plot_3d_Surface - Fatal编程技术网

Python matplotlib三维曲面图未显示

Python matplotlib三维曲面图未显示,python,matplotlib,plot,3d,surface,Python,Matplotlib,Plot,3d,Surface,我正试图用matplotlib制作一个简单的3D曲面图,但最后没有显示该图;我只得到空的3D轴 以下是我所做的: from mpl_toolkits.mplot3d import Axes3D x = np.arange(1, 100, 1) y = np.arange(1, 100, 1) z = np.arange(1, 100, 1) fig = figure() ax = fig.add_subplot(111, projection='3d') ax.plot_surface(x,

我正试图用matplotlib制作一个简单的3D曲面图,但最后没有显示该图;我只得到空的3D轴

以下是我所做的:

from mpl_toolkits.mplot3d import Axes3D

x = np.arange(1, 100, 1)
y = np.arange(1, 100, 1)
z = np.arange(1, 100, 1)

fig = figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, rstride=5, cstride=5) 
show()
…我明白了:


有什么建议吗

您没有绘制曲面:
x
y
z
需要是二维阵列。看看这个例子:


谢谢!但似乎Z必须是X和Y的函数。如果它们中的三个是自变量呢?Z可以独立于X和Y。这并不妨碍你绘制它们。例如,
X=np.arange(-5,5,0.25);十、 Y=np.meshgrid(X,X);Z=np.随机.随机(X.形状)。但是,X、Y和Z必须具有相同的大小。确定。你说得对。我认为曲面图不是显示数据的理想方式。可能是因为变量是独立的,所以这个数字看起来很奇怪。你还知道你的最终代码Libabah吗?看看这些相关/相似/重复的帖子:,
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d, Axes3D
from scipy.interpolate import griddata

x= np.arange(1, 100, 1)
y= np.arange(1, 100, 1)
z= np.arange(1, 100, 1)
fig = plt.figure()
ax = fig.gca(projection='3d')
xi = np.linspace(x.min(), x.max(), 50)
yi = np.linspace(y.min(), y.max(), 50)
zi = griddata((x, y), z, (xi[None, :], yi[:, None]), method='nearest')    # create a uniform spaced grid
xig, yig = np.meshgrid(xi, yi)
surf = ax.plot_wireframe(X=xig, Y=yig, Z=zi, rstride=5, cstride=3, linewidth=1)   # 3d plot
plt.show()