L'ajout de y=x pour un matplotlib nuage de points si je n'ai pas gardé la trace de tous les points de données qui est entré dans
Voici un code qui n'diagramme de dispersion d'un certain nombre de séries différentes à l'aide de matplotlib et ajoute la ligne y=x:
import numpy as np, matplotlib.pyplot as plt, matplotlib.cm as cm, pylab
nseries = 10
colors = cm.rainbow(np.linspace(0, 1, nseries))
all_x = []
all_y = []
for i in range(nseries):
x = np.random.random(12)+i/10.0
y = np.random.random(12)+i/5.0
plt.scatter(x, y, color=colors[i])
all_x.extend(x)
all_y.extend(y)
# Could I somehow do the next part (add identity_line) if I haven't been keeping track of all the x and y values I've seen?
identity_line = np.linspace(max(min(all_x), min(all_y)),
min(max(all_x), max(all_y)))
plt.plot(identity_line, identity_line, color="black", linestyle="dashed", linewidth=3.0)
plt.show()
Afin de parvenir à cela, j'ai dû garder une trace de toutes les valeurs x et y qui sont entrés dans le diagramme de dispersion, de sorte que je sais où identity_line
doit de début et de fin. Est il possible que je peux obtenir y=x pour montrer, même si je n'ai pas une liste de tous les points que j'ai tracé? Je pense que quelque chose dans matplotlib peut me donner une liste de tous les points après le fait, mais je n'ai pas été en mesure de comprendre comment obtenir cette liste.
OriginalL'auteur kuzzooroo | 2014-08-26
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de savoir quelque chose au sujet de vos données soi. Vous pouvez vous en sortir avec ce que votre matplotlib Axes objet de vous informer de la données.
Voir ci-dessous:
Voici la bonne partie:
Et voilà
OriginalL'auteur Paul H