簡體   English   中英

如何將一個熱圖堆疊在另一個之上

[英]How to stack one heatmap on top of another

我分別創建了 2 個二維熱圖。 無論如何我可以將它們一起顯示在 3-D 圖中嗎? 更具體地說,熱圖將放置在 xy 平面上,一個位於 z = 10,另一個位於 z = 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)

-------------------------------------------------- ---

我希望結果與此類似。 紅色和藍色表面應替換為熱圖。

在此處輸入圖片說明

如果我正確理解您的問題,您需要兩個平面。 這是在 3d 中執行此操作的示例。 您可以用您想要的任何值替換 x、y 數據。 這里的技巧是使 z 值保持不變(此處為 10 和 20)。

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)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM