Hallo Forum,
nach Stunden des probierens wende ich mich an euch.
Ich habe ein einfaches Liniendiagramm erstellt. Die Daten kommen aus einer DB.
Soweit alles kein Problem.
Da die DB immer mehr Daten bekommt, wird die Linie im Diagramm immer mehr zusammengedrückt (nach Links).
Jetzt versuche ich wie ein kleines Fenster zu erstellen, welches dann immer die letzten 100 Datensätze in dem Diagramm anzeigt.
Am besten noch mit einer Scrolleiste.
hier mal etwas Code
Sub CreateGraph(ByVal zgc As ZedGraphControl)
Dim myPane As GraphPane = zgc.GraphPane
Me.Table2TableAdapter1.Fill(Me.MaerkteDataSet1.Table2)
myPane.Title.Text = "Crude Light Oil"
myPane.Title.FontSpec.Size = 10
myPane.XAxis.IsVisible = False
myPane.YAxis.IsVisible = False
myPane.Chart.Fill.IsScaled = True
Dim list = New PointPairList()
Dim x As Double, y As Double
For x = 0 To (Me.MaerkteDataSet1.Table2.Rows.Count - 1) 'die
' Datensätze an
y = Me.DataGridView1.Rows(x).Cells(2).Value
list.Add(x, y)
Next x
Dim myCurve As LineItem = myPane.AddCurve("", list, Color.Blue, _
SymbolType.None) 'Linienfarbe und Symbol "SymbolType.None"
myCurve.Line.Width = 1.0F
myCurve.Line.IsAntiAlias = True
myCurve.Symbol.Fill = New Fill(Color.White)
myCurve.Symbol.Size = 3
'myCurve.Line.Fill = New Fill(Color.White, Color.Red, 45.0F)
' 'Hintergrund der Linien
'myCurve.Symbol.Fill = New Fill(Color.White)
' Hintergrund des inneren Bereichs
'Über die Zahl kann ein Farbverlauf erzeugt werden
myPane.Chart.Fill = New Fill(Color.Empty, _
Color.LightGoldenrodYellow, 75.0F)
'Hintergrund des äußeren Bereichs
myPane.Fill = New Fill(Color.LightBlue, Color.FromArgb(220, 220, _
255), 45.0F)
myPane.Fill.IsScaled = True
'Offset setzt den Abstand zur Linie fest
Const offset As Double = 0.1
For i As Integer = 0 To (Me.MaerkteDataSet1.Table2.Rows.Count - 1)
Dim pt As PointPair = myCurve.Points(i)
Dim text As New TextObj(pt.Y.ToString("f2"), pt.X, pt.Y + _
offset, CoordType.AxisXYScale, AlignH.Center, AlignV.Top)
text.ZOrder = ZOrder.A_InFront
text.FontSpec.Size = 5
text.FontSpec.Border.IsVisible = False
text.FontSpec.Fill.IsVisible = False
'text.FontSpec.Fill = New Fill(Color.Blue)
text.FontSpec.Angle = 0
text.FontSpec.FontColor = Color.Blue
myPane.GraphObjList.Add(text)
Next i
' Calculate the Axis Scale Ranges
zgc.AxisChange()
End Sub Google habe ich schon gefragt. Aber auch da ist nix zu finden, was mein Problem lösen könnte.
Hat einer mal ein Idee oder einen Vorschlag, wie ich da weitermachen könnte?!
Gruß Olaf |