Matplotlib Python子地块3d曲面和热量贴图

Matplotlib Python子地块3d曲面和热量贴图,matplotlib,figure,subplot,Matplotlib,Figure,Subplot,我计划在matplotlib中创建一个地物,左侧为3D曲面,右侧为相应的等高线图 我使用了子图,但它只显示等高线图(曲面为空白),曲面为单独的图形 可以在一个图形中并排创建这些绘图吗 编辑:代码如下: import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import axes3d import numpy as np x = np.arange(-5, 5, 0.25) y = np.arange(-5, 5, 0.25) x,

我计划在
matplotlib
中创建一个地物,左侧为3D曲面,右侧为相应的等高线图

我使用了
子图
,但它只显示等高线图(曲面为空白),曲面为单独的图形

可以在一个图形中并排创建这些绘图吗

编辑:代码如下:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
import numpy as np

x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
x, y = np.meshgrid(x, y)
r = np.sqrt(x**2 + y**2)
z = np.sin(r)

fig, (surf, cmap) = plt.subplots(1, 2)

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

surf.plot_surface(x,y,z)

cmap.contourf(x,y,z,25)

plt.show()
我想使用
plt.subplot()
来创建具有不同投影的绘图网格

因此,最直接的解决方案是使用
plt.subplot
分别创建每个子地块

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
import numpy as np

x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
x, y = np.meshgrid(x, y)
r = np.sqrt(x**2 + y**2)
z = np.sin(r)

ax = plt.subplot(121, projection='3d')
ax.plot_surface(x,y,z)

ax2 = plt.subplot(122)
ax2.contourf(x,y,z,25)

plt.show()

当然,您也可以将这些功能用于更复杂的网格结构。

您能展示一下您目前如何进行这项工作的代码吗?是的,但展示所需的输出这是一个关于这方面的例子。如果您在实施过程中遇到问题,请参阅。