Я думаю, что вы не связали каждое из своих пространств подплота в матричном графике с точечными диаграммами, сгенерированными в цикле.
Может быть, это решение с внутренними графиками панд может быть правильным для вас: Например,
1.Позволяет просто определить пустой кадр данных панд.
numerical_df = pd.DataFrame([])
2.Создайте несколько случайных функций и цену в зависимости от них:
numerical_df['A'] = np.random.randn(100)
numerical_df['B'] = np.random.randn(100)*10
numerical_df['C'] = np.random.randn(100)*-10
numerical_df['D'] = np.random.randn(100)*2
numerical_df['E'] = 20*(np.random.randn(100)**2)
numerical_df['F'] = np.random.randn(100)
numerical_df['price'] = 2*numerical_df['A'] +0.5*numerical_df['B'] - 9*numerical_df['C'] + numerical_df['E'] + numerical_df['D']
3.Определите количество строк и столбцов.Создайте пространство подзаговоров с помощью nr_rows и nr_cols.
nr_rows = 2
nr_cols = 4
fig, axes = plt.subplots(nrows=nr_rows, ncols=nr_cols, figsize=(15, 8))
for idx, feature in enumerate(numerical_df.columns[:-1]):
numerical_df.plot(feature, "price", subplots=True,kind="scatter",ax=axes[idx // 4,idx % 4])
4.Перечислите каждый элемент в кадре данных и построите график рассеяния с ценой:
for idx, feature in enumerate(numerical_df.columns[:-1]):
numerical_df.plot(feature, "price", subplots=True,kind="scatter",ax=axes[idx // 4,idx % 4])
, где axes[idx // 4, idx % 4]
определяет местоположение каждого графика рассеяния в матрице, которую вы создаете в (3.)
Итак, мыполучил матричный график:
матрица рассеяния