Я хочу создать сетку тепловых карт морского происхождения 2 x 2 из кадра данных pandas в python, но у меня возникают проблемы с получением желаемого результата.В настоящее время этот код ...
import numpy as np
import pandas as pd
import seaborn as sns
df = pd.DataFrame({'x': np.random.uniform(0, 100, 1000),
'y': np.random.uniform(0, 100, 1000),
'z1': np.random.uniform(0, 1, 1000),
'z2': np.random.uniform(0, 1, 1000),
'z3': np.random.uniform(0, 1, 1000),
'z4': np.random.uniform(0, 1, 1000)})
fig,axn = plt.subplots(2, 2, sharex=True, sharey=True)
result0 = df.pivot(index='x', columns='y', values='z1')
result1 = df.pivot(index='x', columns='y', values='z2')
result2 = df.pivot(index='x', columns='y', values='z3')
result3 = df.pivot(index='x', columns='y', values='z4')
plt.subplot(2, 2, 1)
sns.heatmap(result0, annot=False, cmap='RdBu_r')
plt.subplot(2, 2, 2)
sns.heatmap(result1, annot=False, cmap='RdBu_r')
plt.subplot(2, 2, 3)
sns.heatmap(result2, annot=False, cmap='RdBu_r')
plt.subplot(2, 2, 4)
sns.heatmap(result3, annot=False, cmap='RdBu_r')
создает график, который выглядит следующим образом ... ![enter image description here](https://i.stack.imgur.com/3f2Vu.png)
Но я хочу добавить следующие функции:
- Инвертировать каждую из осей y, чтобы 0 находился внизу, а 100 - вверху
- Сетка должна иметь общие оси x и y, чтобы отметки былине отображается без необходимости
- Тики по оси Y и X должны быть целыми числами, а не десятичными (несмотря на то, что серия y является плавающей точкой
- Каждая сетка должна иметь отдельный заголовок
- Цветная полоса должна быть общей для всех диаграмм.
Эти примеры данных на самом деле не отражают тепловую карту, но я не могу найти лучший способ для них. Любая помощь в решении пяти пунктов выше будетс благодарностью. Спасибо!