Python 如何将一张热图叠加在另一张热图上

Python 如何将一张热图叠加在另一张热图上,python,matplotlib,plot,Python,Matplotlib,Plot,我分别创建了两个二维热图。我是否可以将它们一起显示在三维绘图中?更具体地说,热图将放在x-y平面上,一个在z=10,另一个在z=20 ----------------------------------------------------- ----------------------------------------------------- 我希望结果与这个相似。红色和蓝色表面应替换为热图 如果我正确理解了你的问题,你需要两个平面。下面是一个在3d中执行此操作的示例。可以用所需的任何值替换

我分别创建了两个二维热图。我是否可以将它们一起显示在三维绘图中?更具体地说,热图将放在x-y平面上,一个在z=10,另一个在z=20

----------------------------------------------------- ----------------------------------------------------- 我希望结果与这个相似。红色和蓝色表面应替换为热图


如果我正确理解了你的问题,你需要两个平面。下面是一个在3d中执行此操作的示例。可以用所需的任何值替换x,y数据。这里的技巧是有一个恒定的z值(这里是10和20)


这不是热图。这是一个三维轮廓是的。这不是一个好例子。这些等高线需要用热图来代替。
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

from matplotlib.pyplot import figure

fig1 = plt.figure()
sns.heatmap(np.random.rand(10,10), xticklabels=False, yticklabels=False, cbar=False)

fig2 = plt.figure()
sns.heatmap(np.random.rand(10,10), xticklabels=False, yticklabels=False, cbar=False)
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(figsize=(8, 4))
ax = fig.gca(projection='3d')

x = np.random.rand(50)
y = np.random.rand(50)
X, Y = np.meshgrid(x, y)

Z1 = 0*X + 10
Z2 = 0*X + 20

color_values = np.random.rand(len(y), len(x))
colors = plt.cm.jet(color_values)

ax.plot_surface(X, Y, Z1, facecolors=colors, antialiased=True)
ax.plot_surface(X, Y, Z2, facecolors=colors, antialiased=True)
ax.set_zlim(8, 21)