Как создать отдельные диаграммы разброса для каждых данных в python? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть список списков, в которых каждый список представлен как вектор признаков:

Matrix=[[12,43,65,78,54,43,76,98],
[23,465,90,9,32,75,324,12],
[67,43,21,56,32,7,4,9],
[3,9,0,67,23,12,65,97]]

У меня также есть другой вектор признаков как fvector:

fvector=[54,76,12,55,88,75,32,3]

Я хочу построить разброс график для каждого списка матрицы с fvector отдельно, но когда я попытался построить график, перебирая каждый список, он строится на том же графике:

Я пробовал это:

import matplotlib.pyplot as plt
for i in Matrix:
    plt.scatter(i,fvector)

Результат, который я получил:

Результат, который я получил:

, но я хочу, чтобы каждый матричный график был отдельно, и можно ли построить небольшие отдельные графики? Любая ссылка или ресурс будут полезны.

Спасибо

Ответы [ 3 ]

2 голосов
/ 26 мая 2020

Вы можете использовать подзаголовки для создания нескольких графиков на одной и той же фигуре.

for i, item in enumerate(Matrix,1):
    plt.subplot(2, 2, i)
    plt.scatter(item, fvector)
plt.show()

Если у нас есть более четырех списков в Матрице, мы можем разделить их на группы по четыре и сгенерировать отдельные фигуры для каждый набор из 4 списков. Пожалуйста, проверьте ниже:

for j in range(0, len(Matrix), 4):  
    for i, item in enumerate(Matrix[j:j+4],1):
        plt.subplot(2, 2, i)
        plt.scatter(item, fvector)
    plt.show()

Надеюсь, это поможет !!

1 голос
/ 26 мая 2020

Вам нужно использовать несколько осей, используя подзаголовки

fig, ax = plt.subplots(2)

И график будет выглядеть примерно так:

axs[0].plot(x1, y)
axs[1].plot(x2, y)
1 голос
/ 26 мая 2020
for i in Matrix:
    plt.scatter(i,fvector)
    plt.show()

Должен сделать

...