Мне нужно создать матрицу рассеяния в Python. Я попытался использовать scatter_matrix для этого, но я хотел бы оставить только графики рассеяния над диагональной линией.Аналоговая функция Pandas scatter_matrix для пар (lower.panel, upper.panel)
Я действительно начинаю (далеко не удался), и у меня проблемы, когда столбцы имеют имена (а не номера по умолчанию).
Вот мой код:
import itertools
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data=pd.DataFrame(np.random.randint(0,100,size=(10, 5)), columns=list('ABCDE')) #THE PROBLEM IS HERE - I WILL HAVE COLUMNS WITH NAMES
d = data.shape[1]
fig, axes = plt.subplots(nrows=d, ncols=d, sharex=True, sharey=True)
for i in range(d):
for j in range(d):
ax = axes[i,j]
if i == j:
ax.text(0.5, 0.5, "Diagonal", transform=ax.transAxes,
horizontalalignment='center', verticalalignment='center',
fontsize=16)
else:
ax.scatter(data[j], data[i], s=10)