Gambas-it

Programmazione => Progetti degli utenti => Topic aperto da: andy60 - 18 Agosto 2010, 09:53:47

Titolo: Grafici
Inserito da: andy60 - 18 Agosto 2010, 09:53:47
Non riesco probabilmente x mie carenze ad usare il componente dei grafici in modo produttivo. Sarebbe utile implementare un classe per i grafici a cui dare in pasto array di dati. Qualcuno ha idee in merito? Ho visto che su meteomachine i grafici escono bene ma trovo difficoltà ad usare il codice, soprattutto se non mio:-) (mia carenza...)
Titolo: Re: Grafici
Inserito da: md9327 - 18 Agosto 2010, 12:00:39
Ciao Andy,

sbaglio o a suo tempo avevi messo in piedi un qualcosa legato a google?

E se non ricordo altrettanto male, mi avevi chiesto di creare una libreria in Gambas per poter gestire la cosa senza google... CHe poi avevo anche iniziato a fare, e che ho pubblicato qui, e che almeno in parte funzionava...
Titolo: Re: Grafici
Inserito da: Ceskho - 18 Agosto 2010, 14:22:10
Non riesco probabilmente x mie carenze ad usare il componente dei grafici in modo produttivo. Sarebbe utile implementare un classe per i grafici a cui dare in pasto array di dati. Qualcuno ha idee in merito? Ho visto che su meteomachine i grafici escono bene ma trovo difficoltà ad usare il codice, soprattutto se non mio:-) (mia carenza...)

Tempo addietro fsurfung ti postò le classi di meteomachine e ti spiegò il funzionamento. Mi pareva che la cosa stesse funzionando o sbaglio?
Titolo: Re: Grafici
Inserito da: md9327 - 18 Agosto 2010, 14:29:24
Non dirmi che TI SEI PERSO IL NOSTRO CODICE!?!  :hatecomputer:

E nò, così non se fà...  :nono:

Ehehehe, scherzo andy!
Titolo: Re: Grafici
Inserito da: fsurfing - 18 Agosto 2010, 21:24:54
mi ricordo che avevo fatto un modulo per i grafici a torta e a linee mi pare , forse con la ricerca li trovi :)

per meteomachine in realtà il codice è molto semplice , forse il più malleabile è disegno.grafT che accetta un array per i valori da disegnare



Titolo: Re: Grafici
Inserito da: andy60 - 18 Agosto 2010, 21:26:45
con gli 'anta' mi sto rincoglionendo...davvero posto' il codice? :rotfl:
Titolo: Re: Grafici
Inserito da: fsurfing - 18 Agosto 2010, 21:32:01
per i grafici a line mi pare fosse il seguente

mi ricordo di averne fatto uno per i grafici a torta 3d ma non trovo più il codice :)
Titolo: Re: Grafici
Inserito da: andy60 - 18 Agosto 2010, 21:57:28
ricordo qualcosa, mi sembra che in passato un amico del forum (forse md....) tradusse una classe php(phpchart) in basic, ma funzionava lentamente.
Titolo: Re: Grafici
Inserito da: andy60 - 18 Agosto 2010, 21:58:29
per i grafici a line mi pare fosse il seguente

mi ricordo di averne fatto uno per i grafici a torta 3d ma non trovo più il codice :)

grazie, visto, funziona bene. Il problema che ho rilevato, e che rilevo anche nei grafici fatti con Google Chart, è la 'piattezza' della linea in caso di dati simili fra loro, cosa che in software tipo excel o ooffice non c'è. Ho provato a mettere una valore minimo di y più alto ma non ottengo miglioramenti.
Titolo: Re: Grafici
Inserito da: fsurfing - 18 Agosto 2010, 22:39:35
per quello come ti dissi già tempo fa devi impostare un offset, ad esempio quasi tutti i grafici di meteomachine se i valori da visualizzare oscillano per esempio da 30 a 60 il grafico parte da 29 sull' asse x e finisce a 61(viene fatto in automatico rilevando i valori minimi e massimi prima di iniziare il disegno)   in questo modo viene effettuato un a sorta di zoom attenuando l' effetto appiattimento , poi naturalmente dipende anche dalla dimensione in pixel del grafico che vuoi ottenere e dallo spessore della linea utilizzata
Titolo: Re: Grafici
Inserito da: md9327 - 18 Agosto 2010, 23:41:00
Che te possino, andy...  :hatecomputer:

In allegato la libreria GLibChart che avevo creato da porting php...

E non te perdere...  :nono:

Mi dici perchè era troppo lenta?
Titolo: Re: Grafici
Inserito da: andy60 - 19 Agosto 2010, 07:21:51
Che te possino, andy...  :hatecomputer:

In allegato la libreria GLibChart che avevo creato da porting php...

E non te perdere...  :nono:

Mi dici perchè era troppo lenta?

@fsurfing
Con i grafici dovete avere pazienza con il sottoscritto , so na pippa con le primitive grafiche :'(, grazie x le dritte vedo di sistemare i miei codici.

@md9327
è quello che ricordo, non la provo dall'anno scorso, la testo e ti dico. Ho una classe stupenda php che fa da wrapper ai grafici di Google Chart (Api) se vi interessa sistemarla con me in modo da adattarò a gambas e poi metterla nell'area download.  Aspettavo con gb.chart ma non riesco a farla funzionare, colpa mia.


Domanda che non centra con i grafici ma va a toccare tutto l'aspetto grafico dell'applicazione. L'altro giorno ho creato un nuovo progetto e non ho selezionato QT, bensi' applicazione grafica, in questo modo l'app prende la grafica mac del mio portatile il che non mi dispiace affatto, ci sono aspetti controproducenti lato librerie che non so? Altrimenti cambio le mie app in questo modo mi piace di piu'. THX

Titolo: Re: Grafici
Inserito da: md9327 - 19 Agosto 2010, 12:16:15
Dopo la mia risposta, ho riguardato il codice e mi sono ricordato di alcuni problemi che avevo riscontrato. Un paio li ho sistemati, e ho pure notato la "lentezza" in alcune funzionalità, come tu menzionavi.
Il tempo di rimetterci mano, e vedrò di sistemarla del tutto, dopotutto è un progettino abbastanza complesso...

Riguardo al tuo dubbio circa la grafica, dato che presumo tu abbia selezionato la libreria gb.gui, e che tu stia lavorando sotto gnome, presumo che il progetto abbia selezionato la libreria gtk. Non credo ci siano problemi, o perlomeno non ho ben compreso cosa intendi per problemi...
Titolo: Re: Grafici
Inserito da: andy60 - 19 Agosto 2010, 12:36:30
Dopo la mia risposta, ho riguardato il codice e mi sono ricordato di alcuni problemi che avevo riscontrato. Un paio li ho sistemati, e ho pure notato la "lentezza" in alcune funzionalità, come tu menzionavi.
Il tempo di rimetterci mano, e vedrò di sistemarla del tutto, dopotutto è un progettino abbastanza complesso...

Riguardo al tuo dubbio circa la grafica, dato che presumo tu abbia selezionato la libreria gb.gui, e che tu stia lavorando sotto gnome, presumo che il progetto abbia selezionato la libreria gtk. Non credo ci siano problemi, o perlomeno non ho ben compreso cosa intendi per problemi...

il tuo programma non è alla mia portata, o dovrei capirlo, e ti aiuterei volentieri. Sono un consulente finanziario programmer x hobby ;).

Per problemi intendo se è possibile utilizzare tutte le funzionalià fi un programma fatto sotto qt. Ad esempio il componente webbrowser mi sembra vada solo sotto qt.
Titolo: Re: Grafici
Inserito da: md9327 - 19 Agosto 2010, 17:32:21
Bè, la libreria dispone anche di un esempio... comunque ho notato parecchi problemucci che, al momento, non sono riuscito a risolvere...

Sì, come sai Benoit si basa molto su kde, perchè credo sia il dm di default di mandrake, che lui usa.
Molti componenti sono ancora solo per kde, e alcuni non funzionano correttamente in gnome. Ultimamente ne ho trovati alcune di queste anomalie.
Titolo: Re: Grafici
Inserito da: andy60 - 19 Agosto 2010, 20:52:50
Bè, la libreria dispone anche di un esempio... comunque ho notato parecchi problemucci che, al momento, non sono riuscito a risolvere...

Sì, come sai Benoit si basa molto su kde, perchè credo sia il dm di default di mandrake, che lui usa.
Molti componenti sono ancora solo per kde, e alcuni non funzionano correttamente in gnome. Ultimamente ne ho trovati alcune di queste anomalie.

il browser c'è modo di farlo funzionare con GTK?
Titolo: Re: Grafici
Inserito da: Ceskho - 20 Agosto 2010, 00:39:32
Bè, la libreria dispone anche di un esempio... comunque ho notato parecchi problemucci che, al momento, non sono riuscito a risolvere...

Sì, come sai Benoit si basa molto su kde, perchè credo sia il dm di default di mandrake, che lui usa.
Molti componenti sono ancora solo per kde, e alcuni non funzionano correttamente in gnome. Ultimamente ne ho trovati alcune di queste anomalie.

il browser c'è modo di farlo funzionare con GTK?

con i componenti di gambas no...
Titolo: Re: Grafici
Inserito da: andy60 - 20 Agosto 2010, 06:24:09
Bè, la libreria dispone anche di un esempio... comunque ho notato parecchi problemucci che, al momento, non sono riuscito a risolvere...

Sì, come sai Benoit si basa molto su kde, perchè credo sia il dm di default di mandrake, che lui usa.
Molti componenti sono ancora solo per kde, e alcuni non funzionano correttamente in gnome. Ultimamente ne ho trovati alcune di queste anomalie.

il browser c'è modo di farlo funzionare con GTK?
se ben ricordo una volta in gambas-it c'era un articolo che diceva di come far 'sembrare le app con qt con il look di gnome, ma di acqua sotto i ponti ne è passata, vedi vari release del ns SO. Mi sembra che si dovesse caricare il programma di settaggio opzioni di KDE, sapete se la cosa è ancora valida?

con i componenti di gambas no...
Titolo: Re: Grafici
Inserito da: andy60 - 27 Agosto 2010, 10:59:03
@fsurfing

Sto utilizzando la tua classe domanda sciocca forse sono un po' arruginito... i dati sono assegnati all'array float[] Data.
Te assegni poi i dati con l'istruzione:

Codice: [Seleziona]
.Data = [22.0, 33.0, 45.0, 22.0, 45.56, 2.0, 5.0]

Se volessi assegnare i valori da un recordset di dati, esempio:

Codice: [Seleziona]
myresult = mycon.ExecuteSql("select peso from tbDAILY ORDER BY gma")

come collego il recordset myresult all'array, con cLine.data.add?

Il seguente codice mi da' null object:
Codice: [Seleziona]
DIM chart2 AS NEW cChart
DIM x AS Integer
DIM myresult AS Result
mycon.Connect("alimenti.db")
myresult = mycon.ExecuteSql("select peso from tbDAILY ORDER BY gma")
myresult.MoveFirst
x = 0
WITH chart2
    .Title = "Peso"
    .Height = 200
    .Width = 420
    FOR EACH myresult
    x = x + 1
    .Data.Add(myresult!peso)
    NEXT
    .Forecolor = Color.Red
    .Linewidth = 2
    .Foreground = Color.LightGray
    .writeline
END WITH
  
  PictureBox2.Picture = chart2.picture

il recordset contiene 49 records il campo peso è float come l'array

Grazie di cuore

Titolo: Re: Grafici
Inserito da: md9327 - 27 Agosto 2010, 11:54:59
Acc... ora non ho Gambas sotto mano, e mano la libreria.
Però il pacchetto dovrebbe avere un qualche esempio a corredo...
Titolo: Re: Grafici
Inserito da: andy60 - 27 Agosto 2010, 13:28:46
Acc... ora non ho Gambas sotto mano, e mano la libreria.
Però il pacchetto dovrebbe avere un qualche esempio a corredo...

i dati sono inseriti nell'esempio con questa modalità:

Codice: [Seleziona]
.Data = [22.0, 33.0, 45.0, 22.0, 45.56, 2.0, 5.0, 34.9, 34.0, 56.0, 67.0, 56.9]
Titolo: Re: Grafici
Inserito da: md9327 - 27 Agosto 2010, 13:55:46
Se ho compreso bene, ti basta riempire la proprietà "Data" con i valori, quindi con il metodo "Add()", con un bellissimo loop.
Titolo: Re: Grafici
Inserito da: andy60 - 27 Agosto 2010, 14:55:23
Se ho compreso bene, ti basta riempire la proprietà "Data" con i valori, quindi con il metodo "Add()", con un bellissimo loop.

se hai visto il codice, l'ho fatto ma non mi va, riprovo e ti faccio sapere
Titolo: Re: Grafici
Inserito da: fsurfing - 27 Agosto 2010, 18:08:15
nella classe cline prova a sostituire la line

Codice: gambas [Seleziona]
PUBLIC Data AS Float[]

in
Codice: gambas [Seleziona]
PUBLIC Data AS new Float[]
Titolo: Re: Grafici
Inserito da: andy60 - 27 Agosto 2010, 19:38:44
nella classe cline prova a sostituire la line

Codice: gambas [Seleziona]
PUBLIC Data AS Float[]

in
Codice: gambas [Seleziona]
PUBLIC Data AS new Float[]


funge! :2birre: a questo punto per rendere l'asse delle ordinate maggiormente 'reeattivo' a valori simili si dovrebbe trovare il modo di settare il minimo di ordinata al minimo dei valori del recordset o sbaglio? dove va messa questa routine secondo te, grazie ancora
Titolo: Re: Grafici
Inserito da: fsurfing - 27 Agosto 2010, 21:45:36
mi metto al lavoro per fare una classe grafico decente :)
Titolo: Re: Grafici
Inserito da: milio - 27 Agosto 2010, 22:17:18
Scusate se intervengo, ma non esiste gia' un componente per i grafici in gambas?
Titolo: Re: Grafici
Inserito da: fsurfing - 27 Agosto 2010, 22:41:58
si ma non è molto malleabile :)

comunque ho riscritto la classe includendo l'auto ingrandimento in base ai valori min e max
Titolo: Re: Grafici
Inserito da: milio - 27 Agosto 2010, 22:49:34
C'e' un errore nella tua classe dai il RETURN Pic prima del Draw.End
Titolo: Re: Grafici
Inserito da: fsurfing - 27 Agosto 2010, 23:03:55
vero, fortunatamente quello dopo il draw end sistemava le cose :)
Titolo: Re: Grafici
Inserito da: fsurfing - 27 Agosto 2010, 23:27:45
cambiando alcune variabili si può usare anche con gambas 3
Titolo: Re: Grafici
Inserito da: milio - 27 Agosto 2010, 23:44:26
Io pero' non lo vedo cosi' ostico il componente gb.chart

Ho usato il tuo codice per far vedere come lo si usa.
Titolo: Re: Grafici
Inserito da: fsurfing - 28 Agosto 2010, 08:31:23
si ma come puoi vedere tu stesso il grafico di gambas parte da zero, a noi serviva invece che partisse dal valore minimo (15) inoltre il mio grafico implemnta un ombreggiatura, sbaglio o non puoi decidere i colori di sfondo e delle linee?
Titolo: Re: Grafici
Inserito da: milio - 28 Agosto 2010, 09:08:35
I colori di fondo e delle linee puoi cambiarli...
Per quanto riguarda i valori massimi e minimi ho visto che su g3 e' stato implementato...
L'ombreggiatura e' vero non la fa, però il componente implementato tanti altri tipi di grafici...
Titolo: Re: Grafici
Inserito da: andy60 - 28 Agosto 2010, 12:43:12
siete fortissimi, purtroppo oggi ho da fare e non posso dedicarmi, poi vi dico, cmq grazie x l'interessamento :2birre:
Penso che se il componente fosse poi' malleabile sarebbe da preferire, cmq avere una classe per i grafici semplice e che funzioni è una cosa che reputo molto importante per le applicazioni da sviluppare.
Titolo: Re: Grafici
Inserito da: md9327 - 30 Agosto 2010, 14:09:37
Dai un'occhiata a questo link: http://www.linux.com/archive/feature/122049 (http://www.linux.com/archive/feature/122049)
Titolo: Re: Grafici
Inserito da: andy60 - 30 Agosto 2010, 15:26:31
Dai un'occhiata a questo link: http://www.linux.com/archive/feature/122049 (http://www.linux.com/archive/feature/122049)

conosco.. :P
Titolo: Re: Grafici
Inserito da: milio - 30 Agosto 2010, 22:54:09
Ho provato a scaricare da svn l'ultima versione di G2 ma ho visto che il componente gb.chart e' rimasto indietro.
Ho provato l'ultima versione del componente su G3 e ho visto con stupore che il codice e' si in stato di avanzamento rispetto a G2, ma il codice risulta essere ancora per G2 e non per G3  :-\ , quindi il componente non funziona a meno che non vi mettiate li a rimpiazzare proprietà e metodi (io l'ho fatto  :rolleyes:) che hanno nel frattempo, con la nuova versione, cambiato nome... Inoltre il componente non sfrutta ancora la classe paint che gli darebbe sicuramente una maggior qualita' grafica.
Ci tenevo a farvi vedere a che punto e' arrivato il componente: ho ripreso in un progetto G2 le classi del componente che trovo su G3 e ne ho fatto un piccolo esempio... ;)
Titolo: Re: Grafici
Inserito da: andy60 - 01 Settembre 2010, 00:25:23
@milio

Fatto veramente bene, mi sembra molto personalizzabile, lo provo ad inserire. Sto facendo un software per la dieta a zona,tra parentesi se dovete mettervi a dieta vi puo' essere utile. Per i grafici del peso , delle calorie e dei blocchi mettero' un normale grafico a linee, codice avuto dal forum. Per le composizioni percentuali di proteine grassi e  carboidrati avevo nella release precedente usato la torta 3d di google api.
Titolo: Re: Grafici
Inserito da: andy60 - 01 Settembre 2010, 19:19:11
Ecco il tuo coddice inserito nel contesto della zona, grazie amico :2birre:
Titolo: Re: Grafici
Inserito da: milio - 01 Settembre 2010, 20:04:41
Piacere di averti aiutato...  :2birre:
Titolo: Re: Grafici
Inserito da: andy60 - 02 Settembre 2010, 01:27:56
Il minimo che posso fare è mandarti lo studio della dieta a zona :P...domanda, supponiamo di inserire nell'array di dati due valori positivi e uno pari a zero (cosa possibile) che deve cmq essere evidenziato...mi esce un mathematical error nella riga di codice seguente:

Codice: [Seleziona]
...

 Minimo = Int(((Minimo / (10 ^ (Int(Log(Minimo) / Log(10))))) - 0.5) * 2) / 2 * (10 ^ (Int(Log(Minimo) / Log(10))))

....

ho ovviato modificandolo cosi' ma vorrei avere conferma della giustezza, mi sembra che vada:

Codice: [Seleziona]
IF Minimo < 0 THEN 
    Minimo = - Int(((- Minimo / (10 ^ (Int(Log(- Minimo) / Log(10))))) + 0.5) * 2) / 2 * (10 ^ (Int(Log(- Minimo) / Log(10))))
ENDIF
IF Minimo > 0 THEN 
    Minimo = Int(((Minimo / (10 ^ (Int(Log(Minimo) / Log(10))))) - 0.5) * 2) / 2 * (10 ^ (Int(Log(Minimo) / Log(10))))
ENDIF

ancora, per togliere le etichette sull'asse delle ascisse (troppo piccole non si leggono) cosa devo modificare? Grazie :-*

Titolo: Re: Grafici
Inserito da: milio - 02 Settembre 2010, 13:33:11
L'errore che ti da e' perche' Log() accetta solo valori positivi...
La tua modifica va benissimo: se il valore di Minimo e' zero rimarrà invariato...
Ho visto che comunque sul tipo di grafico a barre (come quello a torta) i valori massimi e minimi vengono presi direttamente dall'array dei dati...
Solo nel tipo a linee, a colonne e a area puoi dargli il 'margine'

Per quanto riguarda il nascondere le etichette:

Chart.XAxe.Visible = FALSE

Oppure per modificare il font delle etichette

Chart.XAxe.Font.Size = 10

Se hai bisogno di altro chiedi pure ;)

ps. dove posso trovare il tuo programma? effettivamente avrei bisogno di mettermi un po' a dieta  :(
Titolo: Re: Grafici
Inserito da: andy60 - 02 Settembre 2010, 17:17:19
Si chiama myZone, ci sto lavorando mi mancano le routine di stampa e naturalmente mi manca di testarlo. Accetto chiaramente aiuti e suggerimenti. Dietro a myZone c'è una logica frutto di ricerche e approfondimenti sulla teoria della zona. Tieni presente che non sono un medico ne' un dietologo...ma forse è meglio :rolleyes: :P

Il primo rilascio è gZonaBuilder che mettero' nella sezione relativa ai programmi del Forum. Grazie x l'aiuto, in effetti potrei averne bisogno x ultimare myZone.
Titolo: Re: Grafici
Inserito da: andy60 - 03 Settembre 2010, 22:27:24
@milio

1) esiste la possibilità di non visualizzare la griglia nel grafico?
2) in un grafico composto da tre valori di cui due positivi ed uno pari a zero, la torta esce come nel file allegato


 grazie! :2birre:
Titolo: Re: Grafici
Inserito da: milio - 03 Settembre 2010, 22:41:13
Per la griglia basta dare:

Chart.YAxe.ShowIntervalLines = FALSE

Per il grafico a torta ho provato ma non mi risulta come da te descritto, il valore 0 in rosso non si vede...
Puoi postarmi il pezzo di codice che riguarda il grafico in questione?
Titolo: Re: Grafici
Inserito da: andy60 - 04 Settembre 2010, 07:12:36
allego codice, :rolleyes:
Titolo: Re: Grafici
Inserito da: andy60 - 04 Settembre 2010, 07:21:08
Che te possino, andy...  :hatecomputer:

In allegato la libreria GLibChart che avevo creato da porting php...

E non te perdere...  :nono:

Mi dici perchè era troppo lenta?

@md9327
Ciao Luigi come stai? Spero ferie ok. Sto realizzzando app con grafici e sono fissato con i grafici...le due librerie che utilizzo sono la tua (libchart) e quella di milio , ambedue sono fantastiche e sto cercando di utilizzarle. Vedendo il tuo lavoro (complimenti x il porting di libchart un giorno mi dovrai spiegare come fai a convertire le classi..io il codice che non è mio fatico a capirlo:-)...).

Domanda forse banale x te, come faccio ad escludere le etichette sull'asse y di un line chart, oppure a variare la loro numerosità (se sono tante si sovrappongono..). thx come al solito, a buon rendere :2birre:
Titolo: Re: Grafici
Inserito da: md9327 - 06 Settembre 2010, 10:57:53
Ciao Andy!

Riguardo alla tua prima domanda, ne hai un'altra di riserva ?  ;D

Fare il porting di una libreria, da un linguaggio ad un'altro, presuppone la conoscenza di tutti  due o, comunque, abbastanza esperienza. Non per modestia, ma ormai sono millenni che lavoro nella programmazione, e ormai difficilmente mi trovo in difficoltà. Ho solo una avversione ai framework, in particolare quelli java, ma per una mia forma-mentis derivata da antiche esperienze...  :D

Ritornando ai grafici, la tua è una mania!  ;D
Scherzo, ovviamente, però al momento mi trovi impreparato, perchè è passato parrecchio da quando avevo studiato e convertito quella libreria. Di sicuro, quello che posso dirti a livello generale, è di stare attendo al numero di datoi da rappresentare, cercando il più possibile di raggrupparli in blocchi più ad alto livello. Questo ovviamente per due motivi: 1) le dimensioni di un grafico non devono utilizzare misure da plotter, 2) non ha senso dettagliare troppo alcune informazioni. Tieni conto che un grafico è la rappresentazioni visiva e sintetica di alcune informazioni; se uno vuole sapere il dettaglio, si và a prendere le singole righe e si fà i controlli che vuole. Ovviamente questo è un mio suggerimento, ma anche dettato dall'esperienza.

Riguardo alla gestione delle aree del grafico, non ricordo ora se è possibile farlo, ma di sicuro si potrebbe implementare.
Titolo: Re: Grafici
Inserito da: andy60 - 06 Settembre 2010, 17:40:50
grazie come sempre, preciso e puntuale :2birre:
Titolo: Re: Grafici
Inserito da: andy60 - 08 Settembre 2010, 12:31:01
@md9327

sempre sui grafici: mi hai detto se ben ricordo che per i grafici è importante 'sintetizzare i dati', ammesso che sia possibile farlo. Ora ho il seguente problema, devo graficizzare il peso di una persona nell'arco dell'anno. Pensavo di farlo nel seguente modo ma non so se è il migliore:
- effettuare una rilevazione alla fine e all'inizio del periodo (mese), tenuto conto del fatto che la variazione del peso corporeo in un mese non assume mai valori esorbitanti. Il problema è creare se si fa cosi' una routine che , scrollando il recordset, attribuisca i dati ai mesi giusti
- media della rilevazione
- in questo modo ho solo 12 valori annui
- grafico ad istogramma
- nel caso di mese con dati=0 non saranno graficizzati, per cui per un mese basta una rilevazione
Titolo: Re: Grafici
Inserito da: md9327 - 08 Settembre 2010, 13:50:10
Scusa andy, presumo tu usi un database...

se sì, è sufficiente agire con le query, raggruppando le informazioni in base a dei criteri.

Nel caso che hai evidenziato, tu hai dati contenuti nell'arco di un anno, ovvero 12 mesi. Adesso non sò che tipo di grafico tu devi produrre, ma avendo i valori numerici, giornoxgiorno, o mesexmese, o anche pure secondoxsecondo, il grafico, viste le tue premese, dovrebbe riportare il sunto diviso per singolo mese, ovvero 12 barre (o altro) nell'arco di un anno.

Esempio: avendo due campi di tabella, di uno riportante il valore in peso e l'altro il giorno di riferimento, la quesry potrebbe essere così:
Codice: [Seleziona]
select month(data_field), sum(value_field) from tabella group by month(data_field) order by mount(data_field)

o, usando gli alias, se permesso dal db

select month(data_field) as mese, sum(value_field) as peso from tabella group by mese order by mese

Tutto ciò risponde alla tua domanda?
Titolo: Re: Grafici
Inserito da: andy60 - 08 Settembre 2010, 17:28:31
- uso un db sqlite3 con una tabella avente i segg. campi, generalizzando:

idnome, intero , il campo dello user corrente
gma, campodata
peso, stringa o float (poi converto eventualmente)

- per i valori mensili penso non ci siano dubbi (quindi 12 valori in un anno)
- per il tipo di grafico idem: istogramma barre verticali
- per i dati da inserire nelle 12 caselle ho due possibilità, ma accetto suggerimenti:
   a) prendere il valore iniziale e finale del mese e fare la media
   b) fare la media degli n valori di quel mese, indipendentemente dagli n

tuo parere?
Titolo: Re: Grafici
Inserito da: md9327 - 09 Settembre 2010, 11:23:42
Dato che sqlite non penso abbia funzioni idonee, sei costretto a ciclarti tutti i dati della tabella con gambas.

Sì, più o meno la tua logica è corretta, e la funzioncina di calcolo dovrebbe essere molto semplice.
Titolo: Re: Grafici
Inserito da: andy60 - 09 Settembre 2010, 13:13:31
per te è meglio( )a o (b) ? :2birre:
Titolo: Re: Grafici
Inserito da: md9327 - 09 Settembre 2010, 14:48:52
Credo sia più corretto fare la media, record x record, indipendentemente dal mese. Poi raggruppi le medie calcolate per singolo mese.
Prendere solo i due valori di inizio e fine mese, non possono darti la media precisa, perchè non è detto che in qualche punto tra le due date non si presenti un valore eccessivamente alto o eccessivamente basso, che porterebbe ad una media diversa.
E' probabile che le variazioni non siano così apprezzabili da modificare poi la media finale, ma calcolondolo sul dettaglio eviti questo problema.
Titolo: Re: Grafici
Inserito da: andy60 - 09 Settembre 2010, 17:02:19
Credo sia più corretto fare la media, record x record, indipendentemente dal mese. Poi raggruppi le medie calcolate per singolo mese.
Prendere solo i due valori di inizio e fine mese, non possono darti la media precisa, perchè non è detto che in qualche punto tra le due date non si presenti un valore eccessivamente alto o eccessivamente basso, che porterebbe ad una media diversa.
E' probabile che le variazioni non siano così apprezzabili da modificare poi la media finale, ma calcolondolo sul dettaglio eviti questo problema.

grazzie :-*
Titolo: Re: Grafici
Inserito da: andy60 - 14 Settembre 2010, 21:20:09
Per la griglia basta dare:

Chart.YAxe.ShowIntervalLines = FALSE

Per il grafico a torta ho provato ma non mi risulta come da te descritto, il valore 0 in rosso non si vede...
Puoi postarmi il pezzo di codice che riguarda il grafico in questione?

ho risolto mettendo solo il tipo istogramma..
Titolo: Re: Grafici
Inserito da: dex - 02 Ottobre 2010, 00:39:30
sto provando linegraf.

volendo aggiungere più linee? un grafico multilinea che visualizza tipo:
line1 azienda x
line2 azienda y

ecc..
Titolo: Re: Grafici
Inserito da: andy60 - 02 Ottobre 2010, 08:20:51
su myZone li ho tolti (grafici) tempraaneamente, mi sto concentrando sul codice base. Poi merreo' gli optionals.