Ceci est mon premier programme matplotlib, donc désolé pour mon ignorance.
J'ai deux tableaux de chaînes. dire, A = ['test1','test2']
et B = ['test3','test4']
. Si une corrélation existe entre l'élément A
et B
, leur valeur corr sera définie sur 1
.
test1 | test2
test3 | 1 | 0
test4 | 0 | 1
Maintenant, je veux dessiner un diagramme de dispersion où mon axe X sera des éléments de A
, l'axe Y sera des éléments de B
et si la valeur de corrélation est 1
, il sera marqué dans l'intrigue dispersée. comment faire ça?
Peut-être quelque chose comme ça:
import matplotlib.pyplot
import pylab
x = [1,2,3,4]
y = [3,4,8,6]
matplotlib.pyplot.scatter(x,y)
matplotlib.pyplot.show()
MODIFIER:
Voyons maintenant si je vous comprends bien:
Tu as:
test1 | test2 | test3
test3 | 1 | 0 | 1
test4 | 0 | 1 | 0
test5 | 1 | 1 | 0
Maintenant, vous voulez représenter les valeurs ci-dessus dans un nuage de points, de sorte que la valeur de 1 soit représentée par un point.
Supposons que vos résultats soient stockés dans une liste 2D:
results = [[1, 0, 1], [0, 1, 0], [1, 1, 0]]
Nous voulons les transformer en deux variables afin de pouvoir les tracer.
Et je crois que ce code vous donnera ce que vous recherchez:
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()
Notez que j'ai besoin d'importer pylab
, et vous auriez dû jouer avec les étiquettes des axes. Cela ressemble aussi à un travail autour, et il pourrait y avoir (probablement) une méthode directe pour le faire.