Benutzer mit den meisten Antworten
Einfache Charts

Frage
-
Hoi Freunde,
will mal einen kleinen Chart realisieren und habe das ChartControl refernziert.
Mit einem Codeschnipsel aus dem Netz läst sich aber nichts darstellen.
Weiss jemand von euch wie man so etwas bewerkstelligen kann ? Bin nicht so der GrafikFreak, daher kA wie es klappen könnte.
Hier der Code soweit:
Private Sub test() Dim seriesNames(0) Dim categories(7) Dim values(7) Dim cht, c, axs seriesNames(0) = "Test" categories(0) = "Test 1" categories(1) = "Test 2" categories(2) = "Test 3" categories(3) = "Test 4" categories(4) = "Test 5" categories(5) = "Test 6" categories(6) = "Test 7" values(0) = 10 values(1) = 22 values(2) = 6 values(3) = 41 values(4) = 5 values(5) = 14 values(6) = 12 Set cht = ChartSpace1.Charts.Add Set c = ChartSpace1.Constants cht.Type = c.chChartTypeLine cht.SetData c.chDimSeriesNames, c.chDataLiteral, seriesNames cht.SetData c.chDimCategories, c.chDataLiteral, categories cht.SeriesCollection(0).SetData c.chDimValues, c.chDataLiteral, values cht.Interior.Color = RGB(100, 100, 100) Set axs = cht.Axes(0) axs.Font.Color = RGB(0, 255, 0) Set axs = cht.Axes(1) axs.Font.Color = RGB(255, 0, 0) End Sub
Der (das?) Chart bleibt einfach weiss ohne irgendwas drin.
Doei
Franz
Antworten
-
Hi Franz,
das ist doch kein VB.NET-Code. Das sieht nach VB6 aus.
Eine Demo könnte so aussehen:
Private Sub Command1_Click()
With MSChart1
' Displays a 3d chart with 8 columns and 8 rows
' data.
.chartType = VtChChartType2dLine
.ColumnCount = 8
.RowCount = 8
For Column = 1 To .ColumnCount
For row = 1 To .RowCount
.Column = Column
.row = row
.RowLabel = "r" & row
.Data = row * Column * 1
Next row
.ColumnLabel = "c" & Column
Next Column
' Use the chart as the backdrop of the legend.
.ShowLegend = True
End With
End Sub
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Dienstag, 29. September 2009 19:20
- Als Antwort markiert Robert Breitenhofer Mittwoch, 7. Oktober 2009 07:24
-
Hallo Franz,
da solltest Du das Wiki konsultieren:
http://zedgraph.org/wiki/index.php?title=Main_Page
Auf der anderen Seite könntest Du auch die Microsoft Charts verwenden,
denn die finden sich an vielen Stellen wieder und werden auch in .NET 4.0
vertreten sein:
http://blogs.msdn.com/alexgor/archive/2008/11/07/microsoft-chart-control-vs-dundas-chart-control.aspx
Gruß Elmar- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 5. Oktober 2009 13:44
- Als Antwort markiert Robert Breitenhofer Mittwoch, 7. Oktober 2009 07:24
-
Hallo Franz,
sollte in einem neuen Tab unter "Data" erscheinen.
Passiert das aus welchen Gründen auch immer -(die Toolbox war immer schon zickig ;-P
Füge das Element manuell hinzu: Chart -> Assembly: System.Windows.Forms.DataVisualization
Gruß Elmar- Bearbeitet Robert Breitenhofer Montag, 5. Oktober 2009 13:44 War: .DataVisualaztion
- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 5. Oktober 2009 13:44
- Als Antwort markiert Robert Breitenhofer Mittwoch, 7. Oktober 2009 07:23
-
Hoi FreuNde,
habe das nun gemanagt, aber bekomme die Date aus dem TXT-File nicht angezeigt.
Nur die erste Zahl wird als Balkengrafik angezeigt, aber es sollen immer die letzten 20 Zahlen aus dieser Datei angezeigt werden.
Wäre über einen Lösungsweg sehr dankbar, denn nichts ist abtörnender als wenn man nicht weiterkommt :-(
Doei
Franz- Als Antwort markiert Trixi-N Sonntag, 18. Oktober 2009 15:00
Alle Antworten
-
Hi Franz,
das ist doch kein VB.NET-Code. Das sieht nach VB6 aus.
Eine Demo könnte so aussehen:
Private Sub Command1_Click()
With MSChart1
' Displays a 3d chart with 8 columns and 8 rows
' data.
.chartType = VtChChartType2dLine
.ColumnCount = 8
.RowCount = 8
For Column = 1 To .ColumnCount
For row = 1 To .RowCount
.Column = Column
.row = row
.RowLabel = "r" & row
.Data = row * Column * 1
Next row
.ColumnLabel = "c" & Column
Next Column
' Use the chart as the backdrop of the legend.
.ShowLegend = True
End With
End Sub
--
Peter- Als Antwort vorgeschlagen Peter Fleischer Dienstag, 29. September 2009 19:20
- Als Antwort markiert Robert Breitenhofer Mittwoch, 7. Oktober 2009 07:24
-
Hallo Franz,
welches denn - das Microsoft Chart Control für .NET 3.5?
Dafür gibt es diverse Beispiele unter
http://code.msdn.microsoft.com/mschart
Gruß Elmar -
Hallo Franz,
da solltest Du das Wiki konsultieren:
http://zedgraph.org/wiki/index.php?title=Main_Page
Auf der anderen Seite könntest Du auch die Microsoft Charts verwenden,
denn die finden sich an vielen Stellen wieder und werden auch in .NET 4.0
vertreten sein:
http://blogs.msdn.com/alexgor/archive/2008/11/07/microsoft-chart-control-vs-dundas-chart-control.aspx
Gruß Elmar- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 5. Oktober 2009 13:44
- Als Antwort markiert Robert Breitenhofer Mittwoch, 7. Oktober 2009 07:24
-
Hoi Elmar,
hatte mir das Wiki schon eingetrichtert, bekomme aber kein Ergebnis nach meinem Wunsch (Zeilenweise einlesen auf einer simplen TextListe) da die beiden angefürhrten HowTo's sich auf zyklisches einlesen spezifiezieren.
Hier mein Code für die simple Balkengrafik (benutzt RND-Funktion):
Private Sub CreateGraph_GradientByZBars(ByVal z1 As ZedGraphControl) Dim myPane As GraphPane = z1.GraphPane myPane.Title.Text = "Benzinverbrauch pro 100 km" myPane.XAxis.Title.Text = "Messung" myPane.YAxis.Title.Text = "Liter" Dim list As New PointPairList() Dim rand As New Random() Dim i As Integer For i = 0 To 30 Dim x As Double = CDbl(i) + 1 Dim y As Double = rand.NextDouble() * 10 Dim z As Double = i / 4.0 list.Add(x, y, z) Next i Dim myCurve As BarItem = myPane.AddBar("Multi-Colored Bars", list, Color.Blue) Dim colors As Color() = {Color.Red, Color.Yellow, Color.Green, Color.Blue, Color.Purple} myCurve.Bar.Fill = New Fill(colors) myCurve.Bar.Fill.Type = FillType.GradientByZ myCurve.Bar.Fill.RangeMin = 0 myCurve.Bar.Fill.RangeMax = 4 myPane.Chart.Fill = New Fill(Color.White, Color.FromArgb(220, 220, 255), 45) myPane.Fill = New Fill(Color.White, Color.FromArgb(255, 255, 225), 45) ' Tell ZedGraph to calculate the axis ranges z1.AxisChange() End Sub 'CreateGraph_GradientByZBars Private Sub SetSize() zg1.Location = New Point(10, 10) ' Leave a small margin around the outside of the control zg1.Size = New Size(ClientRectangle.Width - 10, ClientRectangle.Height - 10) End Sub
da ich, wie gesagt nicht so der Grafik- bzw. Chartfreak bin stehe ich auf dem Schlauch ;-)
Ich benutze in diesem Beispiel die Benzinverbrauchsaten meines PKWs - jeweils die letzten 30 Verbrauchsdaten sollen angezeigt werden.
Doei
Franz -
Hallo Franz,
sollte in einem neuen Tab unter "Data" erscheinen.
Passiert das aus welchen Gründen auch immer -(die Toolbox war immer schon zickig ;-P
Füge das Element manuell hinzu: Chart -> Assembly: System.Windows.Forms.DataVisualization
Gruß Elmar- Bearbeitet Robert Breitenhofer Montag, 5. Oktober 2009 13:44 War: .DataVisualaztion
- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 5. Oktober 2009 13:44
- Als Antwort markiert Robert Breitenhofer Mittwoch, 7. Oktober 2009 07:23
-
Hallo Franz,
das Symbol in der Toolbox ist nicht das entscheidene.
Wichtig ist vor allem, dass die Referenz für die Chart-Komponenten im Projekt vorhanden sind.
Siehe Verweise in den Projekt-Eigenschaften (auch hier System.Windows.Forms.DataVisualization.dll).
Bei einem Beispielprojekt sollte der vorhanden.
Und dass dieser Verweis gefunden werden kann, was nach einer Installation der
Chart Komponenten normalerweise kein Problem sein sollte.
Wenn es gar nicht klappt: Welcher Beispielsource?
Gruß Elmar
-
Hoi FreuNde,
habe das nun gemanagt, aber bekomme die Date aus dem TXT-File nicht angezeigt.
Nur die erste Zahl wird als Balkengrafik angezeigt, aber es sollen immer die letzten 20 Zahlen aus dieser Datei angezeigt werden.
Wäre über einen Lösungsweg sehr dankbar, denn nichts ist abtörnender als wenn man nicht weiterkommt :-(
Doei
Franz- Als Antwort markiert Trixi-N Sonntag, 18. Oktober 2009 15:00