vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Kleine Demo zum Real Time Chart 
Autor: Manfred X
Datum: 17.02.11 13:06

Hallo!

Die Anzeige der Zeiten auf der Achse ist nicht so einfach.
Die Skala wird laufend dynamisch an den Punkte-
abstand angepasst und dabei in die erforderliche
Zahl von Sekunden-Intervallen eingeteilt.

Die Uhrzeit müßte in diesem Beispiel wohl über die CustomLabels-
Eigenschaft der X-Achse explizit für jeden Datenpunkt eingetragen
werden, weil sie sich nicht aus der tatsächlichen Skalierung ergibt.

Ich halte es für sinnvoller, die Zeit als Datenpunkt-Label anzuzeigen.

Um eine zweite Datenserie anzuzeigen, muß eine
zweite Serie eingerichtet werden - genau wie die bereits
vorhandene.

Anpassung der Datenstruktur
    Const cDataSeries2 As String = "DataSeries2"
 
    Public Structure strucChartData
        Dim time As Date
        Dim value1 As Double
        Dim value2 As Double
    End Structure
In der Init-Routine eine zweite Serie hinzufügen:
   MyBase.Series.Add(cDataSeries2)
   With MyBase.Series(cDataSeries2)
       .ChartType = Charting.SeriesChartType.Line 
       .BorderWidth = 2
   End With
Die Routine AddDataPoint ein wenig nachrüsten
Public Function AddDataPoint(ByVal vl1 As Double, _
    ByVal vl2 As Double) As Boolean
 
    If Not _Initialized Then Return False
    If Double.IsNaN(vl1) OrElse Double.IsInfinity(vl1) Then Return False
    If Double.IsNaN(vl2) OrElse Double.IsInfinity(vl2) Then Return False
 
    Dim ivl1 As Double = vl1, ivl2 As Double = vl2
    'Ausreisser-Werte "einfangen"
    ivl1 = Math.Min(ivl1, MyBase.ChartAreas(0).AxisY.Maximum)
    ivl1 = Math.Max(ivl1, MyBase.ChartAreas(0).AxisY.Minimum)
    ivl2 = Math.Min(ivl2, MyBase.ChartAreas(0).AxisY.Maximum)
    ivl2 = Math.Max(ivl2, MyBase.ChartAreas(0).AxisY.Minimum)
 
    With MyBase.Series(cDataSeries)
       'Datenpunkt anhängen (incl. Zeitstempel)
       .Points.AddXY(DateTime.Now.Ticks - _starttime, ivl1)
       `... auch in der zweiten Serie 
       MyBase.Series(cDataSeries2).Points.AddXY _
       (DateTime.Now.Ticks - _starttime, ivl2)
       If _createdatalist Then
          DataList.Add(New strucChartData _
           With {.time = Now, .value1 = vl1, .value2 = vl2})
       End If
 
       'veraltete Punkte entfernen (beide Serien)
       While .Points.Count > _maxpoints
           .Points.RemoveAt(0)
           MyBase.Series(cDataSeries2).Points.RemoveAt(0)
       End While
 
       'X-Achse auf den aktuellen Abschnitt der Zeitlinie ausrichten
       MyBase.ChartAreas(0).AxisX.Minimum = .Points(0).XValue
       MyBase.ChartAreas(0).AxisX.Maximum = .Points(.Points.Count - 1).XValue
 
       'Hier wie oben beide Datenpunkte einrichten
       '................
     End With 
 
     'Neuzeichnen des Chart veranlassen
     Me.Invalidate()
     Return True
End Function


Beitrag wurde zuletzt am 17.02.11 um 13:08:52 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Chart Control mit Array6.314Seo16.02.11 15:47
Re: Chart Control mit Array5.613ModeratorDaveS16.02.11 16:01
Re: Chart Control mit Array6.072Manfred X16.02.11 17:32
Re: Chart Control mit Array5.650Seo17.02.11 07:45
Real Time Chart - Teil17.175Manfred X17.02.11 08:15
Real Time Chart - Teil 25.976Manfred X17.02.11 08:17
Re: Real Time Chart - Teil 25.552Seo17.02.11 09:49
Kleine Demo zum Real Time Chart5.820Manfred X17.02.11 10:16
Re: Kleine Demo zum Real Time Chart5.838Seo17.02.11 10:26
Re: Kleine Demo zum Real Time Chart5.598Seo17.02.11 11:09
Re: Kleine Demo zum Real Time Chart5.733Manfred X17.02.11 13:06
Re: Kleine Demo zum Real Time Chart5.444Seo17.02.11 15:06
Re: Kleine Demo zum Real Time Chart5.161norman.koplansky24.11.11 18:52
Re: Kleine Demo zum Real Time Chart5.192Manfred X24.11.11 19:22
Re: Kleine Demo zum Real Time Chart5.220norman.koplansky25.11.11 07:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel