Как сложить одну тепловую карту поверх другой - PullRequest
0 голосов
/ 22 декабря 2018

Я создал 2 2-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)

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

Я хочу, чтобы результат был похож на этот.Красные и синие поверхности должны быть заменены тепловыми картами.

enter image description here

1 Ответ

0 голосов
/ 22 декабря 2018

Если я правильно понял ваш вопрос, вам нужны две плоские поверхности.Вот пример этого в 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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...