Я пытаюсь создать связи между двумя тепловыми картами, сгенерированными с помощью imshow (dataframe) с помощью ConnectionPatch. Проблема в том, что я хочу использовать индексы данных как коннекторы [xy], но не могу найти никакого способа сделать это. Ниже мой пример набора данных:
# Creating first dataframe
df = pd.DataFrame(
np.random.randint(0, 100, size=(100, 5)),
columns=["heatMap_1", "heatMap_2", "heatMap_3", "heatMap_4", "heatMap_5"],
)
df["index"] = [
"".join(
random.choice(
string.ascii_uppercase + string.ascii_lowercase + string.digits
)
for _ in range(5)
)
for k in df.index
]
df.set_index("index", inplace=True)
df.head()
# Creating the 2nd dataframe
df2 = pd.DataFrame(
np.random.randint(0, 25, size=(25, 4)),
columns=["heatMap_1", "heatMap_2", "heatMap_3", "heatMap_4"],
)
df2["index"] = random.sample(list(clusteredDataframe.index.values), 25)
df2.set_index("index", inplace=True)
df2.head()
# Creating heatmaps using imshow and using gridspec
# to arrange them
fig = plt.figure(figsize=(12, 12))
gs = GridSpec(3, 4)
ax_heatmap1 = plt.subplot(gs[0:3, :2])
ax_connect = plt.subplot(gs[0:3, 2:3])
ax_heatmap2 = plt.subplot(gs[1:2, 3:])
im = ax_heatmap1.imshow(df, cmap="inferno", interpolation="None", aspect="auto")
im = ax_heatmap2.imshow(
df2, cmap="inferno", interpolation="None", aspect="auto"
)
ax_connect
- это ось, где я хотел бы, чтобы мои связи были. Я предполагаю, что ConnectionPatch - самый чистый способ сделать это? Или есть лучший подход для этого?
По сути, это то, что я хочу:
