Någon som vet hur den funkar, blir inte klok på den.
Jag har en array float[21,4]
[n,0] i arrayen är X-vardena och [n,1] och [n,2] Y-värden för två kurvor, [n,3] är Y-värden för en tredje kurva som skall plottas mot den andra Y-axeln.
X-värdena är samma för samtliga tre kurvor.
C# VS.net 2010 Chartcontrol
Re: C# VS.net 2010 Chartcontrol
Jag, har testat den när den kom för 2-3 år sedan. Men fick aldrig till det jag ville göra.
Jag antar att du vill plotta mätvärden, det var vad jag skulle göra. Jag prövade också ett bilbliotek från Microsoft Research som heter DynamicDataDisplay det fungerade mycket bättre men all utveckling upphörde och buggar rättades inte.
Nu kör jag ett bibliotek som heter OxyPlot http://oxyplot.codeplex.com/ som fungerar väldigt bra och har allt jag saknade i de andra. Här finns exempel på vad du kan få för resultat http://www.objo.net/oxyplot/examplebrowser/default.html
Nu var det nog inte detta du vill ha som svar, men vill du göra "Excel" grafer så kan du nog få till det med Charcontrol. Annars rekomenderar jag att du prövar OxyPlot.
/Janno
Jag antar att du vill plotta mätvärden, det var vad jag skulle göra. Jag prövade också ett bilbliotek från Microsoft Research som heter DynamicDataDisplay det fungerade mycket bättre men all utveckling upphörde och buggar rättades inte.
Nu kör jag ett bibliotek som heter OxyPlot http://oxyplot.codeplex.com/ som fungerar väldigt bra och har allt jag saknade i de andra. Här finns exempel på vad du kan få för resultat http://www.objo.net/oxyplot/examplebrowser/default.html
Nu var det nog inte detta du vill ha som svar, men vill du göra "Excel" grafer så kan du nog få till det med Charcontrol. Annars rekomenderar jag att du prövar OxyPlot.
/Janno
Re: C# VS.net 2010 Chartcontrol
Tror jag fått ordning på det, som vanligt så är alla exempel på nätet mer eller mindre felaktiga eller icke kompletta.
Återkommer med lite exempel och förklaringar.
Återkommer med lite exempel och förklaringar.
Re: C# VS.net 2010 Chartcontrol
Så här verkar det vara.
Jag var tvungen att dela upp data till en array per serie.
Detta plottar serie1 och serie2 mot första Y-axeln samt serie3 mot andra Y-axeln, samt sätter axeltitlar.
Dessutom är det lämpligt att göra en "chart1.Series.Clear();" i början av programmet, då det alltid finns en default "series1" i kontrollen.
Problemet visade sig med felaktiga exempel:
Detta funkade inte, utan jag fick felmeddelanden, alla exempel utom ett som jag hittade på nätet var snarlika ovanstående.
Så här skall det stå:
Förmodligen är det något namespace som inte importeras på rätt sätt, dock kan jag inte komma på vilket, då System.Windows.Forms finns med.
Jag var tvungen att dela upp data till en array per serie.
Kod: Markera allt
chart1.Series.Add("Serie1");
chart1.Series.Add("Serie2");
chart1.Series.Add("Serie3");
chart1.Series["Serie1"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart1.Series["Serie2"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart1.Series["Serie3"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
chart1.Series["Serie3"].YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary;
chart1.ChartAreas["ChartArea1"].AxisY.Title ="Serie1+2";
chart1.ChartAreas["ChartArea1"].AxisY2.Title = "Serie3";
chart1.ChartAreas["ChartArea1"].AxisX.Title = "X-Data";
chart1.Series["Serie1"].Points.DataBindXY(xdata, Serie1);
chart1.Series["Serie2"].Points.DataBindXY(xdata, Serie2);
chart1.Series["Serie3"].Points.DataBindXY(xdata, Serie3);
Dessutom är det lämpligt att göra en "chart1.Series.Clear();" i början av programmet, då det alltid finns en default "series1" i kontrollen.
Problemet visade sig med felaktiga exempel:
Kod: Markera allt
chart1.Series["Serie3"].YAxisType = AxisType.Secondary;
Så här skall det stå:
Kod: Markera allt
chart1.Series["Serie3"].YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary;
Re: C# VS.net 2010 Chartcontrol
Vad bra att du fick det att fungera, du saknar:
Så blir koden lite tydligare.
/J
Edit: la dit code tag
Kod: Markera allt
using System.Windows.Forms.DataVisualization.Charting;
/J
Edit: la dit code tag