Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Creazione grafico Visual Basic 2010

    Ciao a tutti! E' la prima volta che ho a che fare con la costruzione di un grafico in visual basic, ma non ho trovato molto materiale a riguardo. Volevo sapere cosa dovrei utilizzare per costruire un grafico che legge i valori in 2 textbox in cui nell'asse x inserisco i valori contenuti in textbox1, mentre nell'asse y inserisco i valori della textbox2. Avevo in mente di utilizzare la classe chart standard di visual basic. Però sono in alto mare!! Leggendo della documentazione si parlava di aggiungere i valori a delle serie della classe series, ma non ho ben capito il funzionamento. Grazie anticipatamente a tutti!!

    Ps: I valori nelle 2 textbox non sono statici ma dinamici poiché mostrano la lettura di dati in tempo reale(es la temperatura)

  2. #2
    sono riuscito a fare qualcosa il problema è che io voglio disegnare i punti in una sola serie.

    con questa funzione scrivo i punti sull'asse xy

    x.Points.AddXY(TextBox1.Text, TextBox2.Text)
    mentre così li inserisco nella serie
    Chart1.Series.Add(x)

    il problema è che mi crea tante serie ogni coppia di punti, mentre io voglio tutti questi punti all'interno di una sola serie.. come posso fare??

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    è un pezzo che non uso quel controllo. Vedi se la procedura di sotto, tratto da un vecchio esercizio, ti può servire

    codice:
        Protected Sub CreaGrafico()
            Dim c As Chart = Me.Chart1
            Dim a As ChartArea = c.ChartAreas(0)
            Dim s As Series = c.Series(0)
            Dim lg As Legend = c.Legends(0)
    
            'databind
            Dim dv As DataView = msole.GetDataView(gl.StringaConnessioneTest, "SELECT * from grafico2")
            's.Points.DataBind(dv, "x", "y", Nothing)
            For Each r As DataRowView In dv
                Dim p As New DataPoint(CDbl(r("x")), CDbl(r("y")))
                p.IsEmpty = Not CBool(r("valido"))
                s.Points.Add(p)
            Next
    
            'tipo di grafico
            s.ChartType = SeriesChartType.Spline
    
            'nome della serie dati
            s.Name = "Ossidi di Azoto (ppm)"
    
    
            'strip line
            Dim stripLine As New StripLine()
            stripLine.BackColor = Color.FromArgb(245, 236, 217)
            stripLine.Interval = 6
            stripLine.IntervalOffset = 1
            stripLine.StripWidth = 3
            a.AxisX.StripLines.Add(stripLine)
    
            'marker
            s.MarkerStyle = MarkerStyle.Circle
            s.MarkerSize = 4
            s.MarkerColor = Color.Black
    
            'spessore linea
            s.BorderWidth = 1
        End Sub
    Pietro

  4. #4
    Cosa fa di preciso il programma? A me sembra prenda i dati da un database! Io devo capire come aggiungere i punti alla serie. Con quello che ho scritto io ad ogni coppia di punti aggiunge una serie e viene un gran casino..

  5. #5
    Quando aggiungo i valori alla serie mi da questo errore:

    Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme.

    Cosa dovrei fare per risolvere??

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462
    Originariamente inviato da fabiranni
    Quando aggiungo i valori alla serie mi da questo errore [...]
    Cosa dovrei fare per risolvere??
    Riporta il codice sorgente aggiornato dove si verifica il problema.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Il codice che ho scritto è:

    Chart1.Series(0).Points.AddXY(TextBox1.Text, TextBox2.Text)

    Teoricamente dovrebbe aggiungere i vari valori presi dalle 2 textbox e aggiungerle alla serie.

    Stesso problema lo da quando ho fatto una prova con 2 array:

    Dim x() as integer = {3,56,23}
    Dim y() as integer = {43,4,12}

    Chart1.Series(0).Points.AddXY(x,y)

    Non capisco cosa ci sia di sbagliato, anche in questo semplice caso dovrebbe tracciarmi il grafico con i 3 valori dei 2 array invece da lo stesso problema in esecuzione.

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,462
    Originariamente inviato da fabiranni
    Il codice che ho scritto è:
    Chart1.Series(0).Points.AddXY(TextBox1.Text, TextBox2.Text)
    Penso che quei valori vadano convertito in un dato numerico prima di aggiungerli al grafico.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    l'esempio riportato funziona (l'ho riprovato adesso).
    Basta ricopiarlo cambiando quello che serve.
    Non è necessario per esempio, leggere i dati da database. Basta togliere il ciclo e inserire qualche punto a mano per capire il funzionamento.
    Insomma, il codice va pure letto e adattato

    Pietro

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Dim x() As Integer = {3, 23, 56}
    Dim y() As Integer = {43, 4, 12}

    For i As Integer = 0 To x.Length - 1
    s.Points.AddXY(x(i), y(i))
    Next


    così funziona
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.