Re: [Python] Grafici

2020-12-05 Per discussione Daniele Zambelli
Il giorno ven 4 dic 2020 alle ore 11:05 Valerio Maggio
 ha scritto:
> [...]

Ottima introduzione a numpy e a matplotlib!

Aggiungo che io ho imparato molto copiando, studiando e modificando gli esempi:

https://matplotlib.org/3.2.1/tutorials/introductory/sample_plots.html

Ciao

-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Grafici

2020-12-04 Per discussione Valerio Maggio
On Fri, 4 Dec 2020 at 09:14, Bruno Firmani  wrote:

> Molte grazie.
> Chiedo un ulteriore aiuto.
>

Ciao Bruno,

un po' di risposte quotate in ordine a partire dal tuo messaggio iniziale
:)


> Ho scritto le seguenti righe di codice:
>
>
> xx = numpy.array([ 1. , 2. , 3. , 4. , 5. , 6. , 7. , 8. , 9.])
> yy = numpy.array([ 1./1. , 1./2. , 1./3. , 1./4. , 1./5. , 1./6. , 1./7. ,
> 1./8. , 1./9.])
> ww = numpy.array([ 1. , 2. , 3. , 5. , 7. , 11. , 13. , 17. , 19.])
> zz = numpy.array([ 1.**2 , 2.**2 , 3.**2 , 4.**2 , 5.**2 , 6.**2 , 7.**2 ,
> 8.**2 , 9.**2])
>

Ok tutto bene fin qui - un paio di heads up di miglioramento

1) NumPy ha la funzione `arange`
https://numpy.org/doc/stable/reference/generated/numpy.arange.html
che potresti utilizzare per generare il tuo vettore di coordinate x
>>> import numpy as np
>>> x = np.arange(1, 10)

2) NumPy - a differenza di Python list - supporta il broadcasting degli
operatori https://numpy.org/doc/stable/user/basics.broadcasting.html - tra
array e scalare o tra array e array
Nel tuo caso:

>>> yy = np.ones(9) / xx  # np.ones genera un array di 1 di lunghezza nove,
diviso per xx elemento per elemento
>>> zz = xx ** 2  # Numpy fa il broadcasting dell'operatore per ciascun
elemento di xx. Tutto avviene a C-level, quindi più efficiente che farlo a
Py-Level.

[OT]
Su 10 numeri non conta nulla. Su 100K, passiamo da micro sec. a nano sec. ;)
Per divertirti, usando sempre arange (o Python range) prova a generare
numeri in range molto più grandi e usa un timeit (
https://docs.python.org/3/library/timeit.html)
per prendere i tempi - e ci dirai ;)
 [/OT]


> yx = numpy.array( list(zip(xx,yy)) )
> wx = numpy.array( list(zip(xx,ww)) )
> zx = numpy.array( list(zip(xx,zz)) )
>

Se capisco bene, il tuo obiettivo è generare dei plot a partire dai vettori
di coordinate utilizzando matplotlib.
Continuo subito sotto. Quoto qui giusto per dirti che questo passaggio è
inutile, e puoi tranquillamente evitarlo - uso di zip compreso.
Come consiglio generale, sempre meglio evitare passaggi da numpy array ->
python list -> numpy array.
Inoltre, per inciso, matplotlib è flessibile sia che gli si passi Python
lists di numeri che numpy array (in generale, sempre meglio NumPy array per
efficienza).


> e dovrei far disegnare, per linee, in un unico grafico le liste di punti:
> [ [x1,y1] , ... , [xn,yn] ]
> [ [x1,w1] , ... , [xn,wn] ]
> [ [x1,z1] , ... , [xn,zn] ]
> Pensavo di utilizzare matplotlib ma non riesco a trovare le istruzioni
> giuste.


La funzione di matplotlib che vorresti usare è plot:
https://matplotlib.org/3.3.3/api/_as_gen/matplotlib.pyplot.plot.html
Come vedi dalla documentazione, plot è abbastanza flessibile su come
passare le coordinate. Il primo esempio - anche quello più comune - è
passare x e y (liste o array) come vettori di coordinate

Esempio, nel tuo caso

>>> from matplotlib import pyplot as plt
>>> plt.plot(xx, yy)
>>> plt.show()

Spero che questo esempio chiarisca perché gli array yx, wx, ... non sono
necessari :)


> Le liste yx, wx, zx  sono adesso liste di punti del piano.
> Ora dovrei i loro tre grafici insieme in una unica figura.
>

Benissimo, arriviamo all'ultimo punto.
Matplotlib è basato sul disegno di Canvas - tradotto in altri termini, ogni
volta che matplotlib deve disegnare un nuovo punto o un nuovo grafico,
ridisegna sulla stessa figura, la nuova figura (di default).
In altre parole, finché non si invoca esplicitamente il metodo show() - il
canvas di riferimento è sempre lo stesso.

Cosa intendo dire? che puoi continuare ad invocare plt.plot tutte le volte
che vuoi e con coordinate diverse **prima** di invocare il plt.show()
finale che mostra tutto.
Traduco in codice (full example)

>>> from matplotlib import pyplot as plt
>>> plt.figure(figsize=(10, 10))  # non veramente necessario ma solo per
mostrarti come creare un oggetto figure. Questa Figure rappresenta
l'oggetto in cui le canvas verranno disegnate
>>> plt.plot(xx, yy, )
>>> plt.plot(xx, ww)
>>> plt.plot(xx, zz)
>>> plt.show()

Per un plot più sensato vorrai naturalmente cambiare colori e magari anche
marker alle linee - ti invito a dare di nuovo una occhiata alla doc di plot
linkata prima.

Last but not least, se volessi invece avere più plot nella stessa figura ma
NON sovrapposti, dovrai sostiture al mio plt.figure, plt.subplots (
https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.subplot.html)
Esempio di uso in fondo alla pagina.

Spero sia stato sufficientemente chiaro su tutti i punti. Se non fosse
così, fa pure sapere :)

A presto,
Valerio
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Grafici

2020-12-04 Per discussione Bruno Firmani
Molte grazie.
Chiedo un ulteriore aiuto.


Ho scritto le seguenti righe di codice:


xx = numpy.array([ 1. , 2. , 3. , 4. , 5. , 6. , 7. , 8. , 9.])
yy = numpy.array([ 1./1. , 1./2. , 1./3. , 1./4. , 1./5. , 1./6. , 1./7. ,
1./8. , 1./9.])
ww = numpy.array([ 1. , 2. , 3. , 5. , 7. , 11. , 13. , 17. , 19.])
zz = numpy.array([ 1.**2 , 2.**2 , 3.**2 , 4.**2 , 5.**2 , 6.**2 , 7.**2 ,
8.**2 , 9.**2])

yx = numpy.array( list(zip(xx,yy)) )
wx = numpy.array( list(zip(xx,ww)) )
zx = numpy.array( list(zip(xx,zz)) )

Le liste yx, wx, zx  sono adesso liste di punti del piano.
Ora dovrei i loro tre grafici insieme in una unica figura.
Ho cercato su matplotlib ma non ho trovato indicazioni per me comprensibili.

Posso avere indicazioni?
Grazie



   Bruno Firmani
   Via Giannantonio Manci 5 - 39100 BOLZANO
e.mail firmanibr...@gmail.com
   mlbf1...@gmail.com
tel.   +39 338 5721755 (cellulare)
fax+39 02 70039544


Il giorno ven 4 dic 2020 alle ore 01:02 Alessandro Dentella <
sandro.dente...@gmail.com> ha scritto:

> On Thu, Dec 03, 2020 at 07:24:27PM +0100, Bruno Firmani wrote:
> > Sto muovendo i primi passi in Python.
>
> Benvenuto
>
> >
> > Il mio problema è il seguente:
> >
> > ho quattro liste numeriche:
> >
> > xx = [x1,x2, ... ,xn]
> > yy = [y1,y2, ... ,yn]
> > ww = [w1,w2, ... ,wn]
> > zz = [z1,z2, ... ,zn]
> >
> > e dovrei far disegnare, per linee, in un unico grafico le liste di punti:
> >
> > [ [x1,y1] , ... , [xn,yn] ]
> > [ [x1,w1] , ... , [xn,wn] ]
> > [ [x1,z1] , ... , [xn,zn] ]
> >
> > Chiedo, se possibile, di avere indicazioni.
>
> una cosa tipo zip(xx, yy)?
>
> In [1]: xx = ['x1','x2', 'xn']
>...: yy = ['y1','y2', 'yn']
>...: ww = ['w1','w2', 'wn']
>...: zz = ['z1','z2', 'zn']
>
> In [2]: list(zip(xx, yy))
> Out[2]: [('x1', 'y1'), ('x2', 'y2'), ('xn', 'yn')]
>
> In [3]: list(zip(xx, ww))
> Out[3]: [('x1', 'w1'), ('x2', 'w2'), ('xn', 'wn')]
>
> *:-)
>
>
> --
> Sandro Dentella  *:-)
> http://wikidattica.org Flashcard per la didattica
> ___
> Python mailing list
> Python@lists.python.it
> https://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Grafici

2020-12-03 Per discussione Alessandro Dentella
On Thu, Dec 03, 2020 at 07:24:27PM +0100, Bruno Firmani wrote:
> Sto muovendo i primi passi in Python.

Benvenuto

> 
> Il mio problema è il seguente:
> 
> ho quattro liste numeriche:
> 
> xx = [x1,x2, ... ,xn]
> yy = [y1,y2, ... ,yn]
> ww = [w1,w2, ... ,wn]
> zz = [z1,z2, ... ,zn]
> 
> e dovrei far disegnare, per linee, in un unico grafico le liste di punti:
> 
> [ [x1,y1] , ... , [xn,yn] ]
> [ [x1,w1] , ... , [xn,wn] ]
> [ [x1,z1] , ... , [xn,zn] ]
> 
> Chiedo, se possibile, di avere indicazioni.

una cosa tipo zip(xx, yy)?

In [1]: xx = ['x1','x2', 'xn']
   ...: yy = ['y1','y2', 'yn']
   ...: ww = ['w1','w2', 'wn']
   ...: zz = ['z1','z2', 'zn']

In [2]: list(zip(xx, yy))
Out[2]: [('x1', 'y1'), ('x2', 'y2'), ('xn', 'yn')]

In [3]: list(zip(xx, ww))
Out[3]: [('x1', 'w1'), ('x2', 'w2'), ('xn', 'wn')]

*:-)


-- 
Sandro Dentella  *:-)
http://wikidattica.org Flashcard per la didattica
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


[Python] Grafici

2020-12-03 Per discussione Bruno Firmani
Sto muovendo i primi passi in Python.

Il mio problema è il seguente:

ho quattro liste numeriche:

xx = [x1,x2, ... ,xn]
yy = [y1,y2, ... ,yn]
ww = [w1,w2, ... ,wn]
zz = [z1,z2, ... ,zn]

e dovrei far disegnare, per linee, in un unico grafico le liste di punti:

[ [x1,y1] , ... , [xn,yn] ]
[ [x1,w1] , ... , [xn,wn] ]
[ [x1,z1] , ... , [xn,zn] ]

Pensavo di utilizzare matplotlib ma non riesco a trovare le istruzioni
giuste.

Chiedo, se possibile, di avere indicazioni.

Grazie


   Bruno Firmani
   Via Giannantonio Manci 5 - 39100 BOLZANO
e.mail firmanibr...@gmail.com
   mlbf1...@gmail.com
tel.   +39 338 5721755 (cellulare)
fax+39 02 70039544
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] grafici in python?

2008-09-06 Per discussione Fabrizio Mancini
On Fri, Sep 5, 2008 at 12:59 PM, IloChab <[EMAIL PROTECTED]> wrote:

> Io trovo ottimo
> http://pyqwt.sourceforge.net/
>
> (pero' si porta dietro Qt4, non so' se è "troppo")
>
> ciao
> Licia
>

Ciao,
grazie dei consigli ma forse portarsi dietro tutte le qt è troppo! :-)
mi serve di plottare un grafico e spedirlo via mail, aggregando dei dati
pescati da db.
L'applicazione è di tipo batch, quindi senza controllo umano. Per questo
motivo mi serve una cosa leggera e che non richieda interventi o cose
"strane" che devono essere presenti su di un server, e per i sistemisti qt è
"strano" !!! :-)
Grazie a tutti dei consigli, per adesso sto provando sia matplotlib che rpy,
poi devo scegliere tra quello che si porta appresso meno dipendenze di
interfaccia grafica.
Fabriizo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] grafici in python?

2008-09-05 Per discussione IloChab
Io trovo ottimo
http://pyqwt.sourceforge.net/

(pero' si porta dietro Qt4, non so' se è "troppo")

ciao
Licia

2008/9/2 Fabrizio Mancini <[EMAIL PROTECTED]>

> Ciao a tutti,
> sono abbastanza nuovo su python, e stavo cercando un modo per fare dei
> grafici in python.
> Vorrei fare dei grafici abbastanza semplici tipo quelli che vengono
> generati da excel (grafici ad area per intenderci) e vorrei usare qualcosa
> di opensource.
> Avete suggerimenti, esperienze, indicazioni a riguardo?
> qualsiasi suggerimento è il benvenuto
> Grazie
> Fabrizio
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] grafici in python?

2008-09-05 Per discussione Manuele Pesenti

esiste anche un'integrazione di python con gnuplot
http://gnuplot-py.sourceforge.net/
a questo indirizzo hai già un buon punto di partenza

ciao
Manuele

On Wednesday 03 September 2008 01:40:01 Alessandro Sarretta wrote:
> Per il poco che ne so, usando rpy (http://rpy.sourceforge.net/) puoi
> usare con python tutte le librerie di R(http://www.r-project.org/).
> Ale
>
> Fabrizio Mancini ha scritto:
> > Ciao a tutti,
> > sono abbastanza nuovo su python, e stavo cercando un modo per fare dei
> > grafici in python.
> > Vorrei fare dei grafici abbastanza semplici tipo quelli che vengono
> > generati da excel (grafici ad area per intenderci) e vorrei usare
> > qualcosa di opensource.
> > Avete suggerimenti, esperienze, indicazioni a riguardo?
> > qualsiasi suggerimento è il benvenuto
> > Grazie
> > Fabrizio
> > 
> >
> > ___
> > Python mailing list
> > Python@lists.python.it
> > http://lists.python.it/mailman/listinfo/python
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python



-- 
Manuele Pesenti
[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://mpesenti.polito.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] grafici in python?

2008-09-03 Per discussione G. Durin
Ciao fabrizio,
la migliore soluzione (e anche la piu' semplice) e' proprio matplotlib. 
Io lo uso tutti i giorni e puoi fare praticamente tutto. Non e' 
velocissimo, ma poco importa. Devi spendere un po' di tempo a leggerti i 
  tutorial e il manuale, ma ne vale la pena.

ciao
Gianfranco

Fabrizio Mancini wrote:
> Ciao a tutti,
> sono abbastanza nuovo su python, e stavo cercando un modo per fare dei 
> grafici in python.
> Vorrei fare dei grafici abbastanza semplici tipo quelli che vengono 
> generati da excel (grafici ad area per intenderci) e vorrei usare 
> qualcosa di opensource.
> Avete suggerimenti, esperienze, indicazioni a riguardo?
> qualsiasi suggerimento è il benvenuto
> Grazie
> Fabrizio
> 
> 

-- 
Istituto Nazionale di Ricerca Metrologica (I.N.Ri.M)
(former Istituto Elettrotecnico Nazionale Galileo Ferraris)
Strada delle Cacce, 91 - 10135 Torino Italy
tel: ++39 011 3919839fax: ++39 011 3919834
Personal home page: http://www.inrim.it/~durin/
INRiM home pag: http://www.inrim.it/
=
Please note my new e-mail: [EMAIL PROTECTED]
=
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] grafici in python?

2008-09-02 Per discussione Alessandro Sarretta
Per il poco che ne so, usando rpy (http://rpy.sourceforge.net/) puoi
usare con python tutte le librerie di R(http://www.r-project.org/).
Ale

Fabrizio Mancini ha scritto:
> Ciao a tutti,
> sono abbastanza nuovo su python, e stavo cercando un modo per fare dei 
> grafici in python.
> Vorrei fare dei grafici abbastanza semplici tipo quelli che vengono 
> generati da excel (grafici ad area per intenderci) e vorrei usare 
> qualcosa di opensource.
> Avete suggerimenti, esperienze, indicazioni a riguardo?
> qualsiasi suggerimento è il benvenuto
> Grazie
> Fabrizio
> 
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>   



___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] grafici in python?

2008-09-02 Per discussione Fabrizio Mancini
On Tue, Sep 2, 2008 at 5:53 PM, Maurizio Simoni <[EMAIL PROTECTED]>wrote:

> Prova a dare un'occhiata a MatPlotLib
> http://matplotlib.sourceforge.net/
>
> mmhh sembra interessante!
Ci do un'occhio e vedo cosa ci cavo fuori!
grazie
Fabrizio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] grafici in python?

2008-09-02 Per discussione Maurizio Simoni
Prova a dare un'occhiata a MatPlotLib
 
http://matplotlib.sourceforge.net/



Date: Tue, 2 Sep 2008 17:23:08 +0200From: [EMAIL PROTECTED]: [EMAIL PROTECTED]: 
[Python] grafici in python?
Ciao a tutti,sono abbastanza nuovo su python, e stavo cercando un modo per fare 
dei grafici in python.Vorrei fare dei grafici abbastanza semplici tipo quelli 
che vengono generati da excel (grafici ad area per intenderci) e vorrei usare 
qualcosa di opensource.Avete suggerimenti, esperienze, indicazioni a 
riguardo?qualsiasi suggerimento è il benvenutoGrazieFabrizio
 
 
_
Comunica, gioca e divertiti con i tuoi amici su Messenger!
http://www.messenger.it___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] grafici in python?

2008-09-02 Per discussione Fabrizio Mancini
Ciao a tutti,
sono abbastanza nuovo su python, e stavo cercando un modo per fare dei
grafici in python.
Vorrei fare dei grafici abbastanza semplici tipo quelli che vengono generati
da excel (grafici ad area per intenderci) e vorrei usare qualcosa di
opensource.
Avete suggerimenti, esperienze, indicazioni a riguardo?
qualsiasi suggerimento è il benvenuto
Grazie
Fabrizio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python