diagramma a dispersione matplotlib con testo differente in ogni punto di dati

Sto cercando di creare un grafico a dispersione e di annotare punti dati con numeri diversi da un elenco. quindi per esempio voglio tracciare y vs x e annotare con numeri corrispondenti da n.

y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199] z = [0.15, 0.3, 0.45, 0.6, 0.75] n = [58, 651, 393, 203, 123] ax = fig.add_subplot(111) ax1.scatter(z, y, fmt='o') 

Qualche idea?

Non sono a conoscenza di alcun metodo di tracciamento che tenga matrici o elenchi, ma è ansible utilizzare annotate() durante l’iterazione sui valori in n .

 y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199] z = [0.15, 0.3, 0.45, 0.6, 0.75] n = [58, 651, 393, 203, 123] fig, ax = plt.subplots() ax.scatter(z, y) for i, txt in enumerate(n): ax.annotate(txt, (z[i], y[i])) 

Ci sono molte opzioni di formattazione per annotate() , vedi il sito web matplotlib:

inserisci la descrizione dell'immagine qui

Nella versione precedente a matplotlib 2.0, ax.scatter non è necessario per tracciare il testo senza marcatori. Nella versione 2.0 avrete bisogno di ax.scatter per impostare l’intervallo e i marker appropriati per il testo.

 y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199] z = [0.15, 0.3, 0.45, 0.6, 0.75] n = [58, 651, 393, 203, 123] fig, ax = plt.subplots() for i, txt in enumerate(n): ax.annotate(txt, (z[i], y[i])) 

E in questo link puoi trovare un esempio in 3d.