Подтвердить что ты не робот

Разброс графика в matplotlib

Это моя первая программа matplotlib, так что извините за мое невежество.

У меня есть два массива строки. скажем, A = ['test1','test2'] и B = ['test3','test4']. Если существует какая-либо корреляция между элементами A и B, их значение corr будет установлено на 1.

        test1 | test2
test3 |   1   |   0

test4 |   0   |   1

Теперь я хочу нарисовать диаграмму рассеяния, где моя ось X будет элементами A, ось Y будет элементами B, а если значение корреляции 1, оно будет отмечено в разбросанном сюжет. как это сделать?

4b9b3361

Ответ 1

Возможно, что-то вроде этого:

import matplotlib.pyplot
import pylab

x = [1,2,3,4]
y = [3,4,8,6]

matplotlib.pyplot.scatter(x,y)

matplotlib.pyplot.show()

EDIT:

Позвольте мне убедиться, правильно ли я вас понял сейчас:

У вас есть:

       test1 | test2 | test3
test3 |   1   |   0  |  1

test4 |   0   |   1  |  0

test5 |   1   |   1  |  0

Теперь вы хотите представить приведенные выше значения в диаграмме рассеяния, так что значение 1 представлено точкой.

Предположим, что результаты сохраняются в двумерном списке:

results = [[1, 0, 1], [0, 1, 0], [1, 1, 0]]

Мы хотим преобразовать их в две переменные, чтобы мы могли их построить.

И я верю, что этот код даст вам то, что вы ищете:

import matplotlib
import pylab


results = [[1, 0, 1], [0, 1, 0], [1, 1, 0]]

x = []
y = []

for ind_1, sublist in enumerate(results):
    for ind_2, ele in enumerate(sublist):
        if ele == 1:
            x.append(ind_1)
            y.append(ind_2)       


matplotlib.pyplot.scatter(x,y)

matplotlib.pyplot.show()

Обратите внимание, что мне нужно импортировать pylab, и вы бы поиграли с метками оси. Также это похоже на работу, и может быть (вероятно, есть) прямой метод для этого.