C# VS.net 2010 Chartcontrol

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46878
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

C# VS.net 2010 Chartcontrol

Inlägg av TomasL »

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.
janno
Inlägg: 429
Blev medlem: 11 oktober 2009, 07:34:45
Ort: Västerås

Re: C# VS.net 2010 Chartcontrol

Inlägg av janno »

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
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46878
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: C# VS.net 2010 Chartcontrol

Inlägg av TomasL »

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.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46878
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: C# VS.net 2010 Chartcontrol

Inlägg av TomasL »

Så här verkar det vara.
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);
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:

Kod: Markera allt

chart1.Series["Serie3"].YAxisType = AxisType.Secondary;
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å:

Kod: Markera allt

chart1.Series["Serie3"].YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary;
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.
janno
Inlägg: 429
Blev medlem: 11 oktober 2009, 07:34:45
Ort: Västerås

Re: C# VS.net 2010 Chartcontrol

Inlägg av janno »

Vad bra att du fick det att fungera, du saknar:

Kod: Markera allt

using System.Windows.Forms.DataVisualization.Charting;
Så blir koden lite tydligare.

/J

Edit: la dit code tag
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46878
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: C# VS.net 2010 Chartcontrol

Inlägg av TomasL »

Kom på det till slut.
Skriv svar