Forum >> Programmazione Python >> Calcolo scientifico >> Dati e grafico

Pagina: Indietro 1 2 3 4 5 Avanti

Solo altre due cose: la virgola dopo "line" a che serve?



--- Ultima modifica di Andrdne in data 2018-01-01 14:43:18 ---
bella domanda :D




allora se togliamo line, = e lasciamo solo plt.plot(x, y, label ="linea 1") lo script funziona lo stesso.




lo spiega nella documentazione ufficiale ma non ci ho capito molto... forse è per plottare linee multiple

https://matplotlib.org/tutorials/introductory/pyplot.html#sphx-glr-tutorials-introductory-pyplot-py





Use the setter methods of a Line2D instance. plot returns a list of Line2D objects; e.g., line1, line2 = plot(x1, y1, x2, y2). In the code below we will suppose that we have only one line so that the list returned is of length 1. We use tuple unpacking with line, to get the first element of that list:


line, = plt.plot(x, y, '-')
line.set_antialiased(False) # turn off antialising


Una versione più compatta:
>>> import pylab
>>> with open("Dati.txt") as f:
...     x, y = zip(*[(float(x), float(y)) for x, y in (
...         line.replace(',', '.').split() for line in f.readlines()[1:])])
...         
>>> pylab.plot(x, y)
[<matplotlib.lines.Line2D at 0x7f7a047f23c8>]
>>> pylab.show()




THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Allegati
Per stix77: il metodo che mi hai consigliato non riesco a farlo funzionare;

Per cm: ti ringrazio per la risposta. Ho una domanda: per aggiungere la linea di tendenza ho scritto

z = numpy.polyfit(x, y, 2)
p = numpy.poly1d(z)
pylab.plot(x,p(x),"k")


e fin qui funziona. Ma dal momento che aggiungo le barre di errore nei seguenti modi

pylab.errorbar(x, y, yerr=...)

plt.errorbar(x, y, yerr=...)

eb = plt.errorbar(x, y, yerr=..., fmt="", color='k')

mi unisce tutti i punti in ogni caso. Non c'è un modo per non farglielo fare?



--- Ultima modifica di Andrdne in data 2018-01-01 18:13:18 ---
Solo altre due cose: la virgola dopo "line" a che serve?



--- Ultima modifica di Andrdne in data 2018-01-01 14:43:18 ---
alla fine ho chiesto su stackoverflow il perchè della virgola e trovi la risposta sotto se ti interessa




https://stackoverflow.com/questions/48050915/using-of-line-in-matplotlib?noredirect=1#comment83073792_48050915

Una versione più compatta:
grazie mille :ok:
Per stix77: il metodo che mi hai consigliato non riesco a farlo funzionare;
molto semplicemente devi cancellare la riga:




x = [x[:5] for x in List]




e sostituirla con la riga di codice che utilizziamo per le y, ovviamente devi modificare due cose: la lettera x al posto della y per assegnare gli elementi alla lista x, inoltre noi quando spezziamo l'elemento in due non vogliamo più la parte destra, ma quella sinistra, quindi devi cambiare l'indice dentro le parentesi quadre da 1 a 0






ecco il codice dove ho cambiato il modo di acquisizione della lista X, inoltre ho acquisito anche il label degli assi in maniera automatica.



ho capito perchè se posto il codice con numeri fra parentesi quadre, nel post poi non si vedono.. perchè il sistema le riconosce come fonti a link esterni...

non c'è la maniera di escludere tale funzione?


--- Ultima modifica di stix77 in data 2018-01-01 19:09:28 ---
Si quello l'ho fatto. Il problema è che, giocando coi dati (mettendo nelle x i numeri da 1 a 10 e nell'asse y i corrispondenti quadrati) restituisce questo:
Allegati
ho capito perchè se posto il codice con numeri fra parentesi quadre, nel post poi non si vedono.. perchè il sistema le riconosce come fonti a link esterni...

non c'è la maniera di escludere tale funzione?
che io sappia, no. questo forum usa la sintassi WikiWiki. questo significa che le stringhe CamelCase e gli identificatori racchiusi tra quadre diventano dei link. e purtroppo ciò avviene anche nei blocchi <pre>. non ho mai controllato se esistono forme di escape. per i primi è un problema minore (diventano link, ma non cambia il testo; per i secondi ho scoperto che basta introdurre uno spazio tra le quadre e il testo per annullarne il comportamento:
list[ 42 ]
THE 🍺-WARE LICENSE (Revision ㊷):
<carlo@🐍.it> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
ho capito perchè se posto il codice con numeri fra parentesi quadre, nel post poi non si vedono.. perchè il sistema le riconosce come fonti a link esterni...

non c'è la maniera di escludere tale funzione?
che io sappia, no. questo forum usa la sintassi WikiWiki. questo significa che le stringhe CamelCase e gli identificatori racchiusi tra quadre diventano dei link. e purtroppo ciò avviene anche nei blocchi <pre>. non ho mai controllato se esistono forme di escape. per i primi è un problema minore (diventano link, ma non cambia il testo; per i secondi ho scoperto che basta introdurre uno spazio tra le quadre e il testo per annullarne il comportamento:
list[ 42 ]

grazie mille!!


Pagina: Indietro 1 2 3 4 5 Avanti



Esegui il login per scrivere una risposta.