2014-02-24 8 views
6

ich ein System.Windows.Forms.DataVisualization.Chart einige x, y Streudaten, wie dies plotten bin mit Grafik in:hinzufügen horizontale Linie C#

chart1.Series["Series2"].Points.AddXY(stringX, doubleY); 
  1. Ich möchte dieses Diagramm eine horizontale Linie mit einem hinzufügen Durchschnitt der Form y = konstant. Wie kann ich das tun? Bitte beachten Sie, dass die x-Achse eine Zeichenkette ist

  2. Eigentlich ist die x-Achse die Zeit (hh: mm: ss). Ich konvertiere es in eine Zeichenkette, um es darzustellen, denn wenn ich das DateTime-Format für die x-Achse (XValueType) des Diagramms verwende, zeigt es nicht die Sekunden an. Kann ich das korrigieren, um die Sekunden anzuzeigen, damit ich direkt x als DateTime und y als Double plotten kann?

+0

Sie können die gleichen Ergebnisse mit einem 'StripLine' erreichen, beziehen sich auf: http://stackoverflow.com/questions/6524501/custom-xy-grid-line-in-mschart-control – Dayan

Antwort

11

Für Punkt 2 können Sie immer noch die XValueType zu DateTime aber mit dem richtigen Format in LabelStyle gesetzt.

chart1.Series[SeriesName].XValueType = ChartValueType.DateTime; 
// Use the required format. I used the below format as example. 
chart1.ChartAreas[ChartName].AxisX.LabelStyle.Format = "dd/mm/yy hh:mm:ss"; 

Für Punkt 1, die ein StripLine zur Y-Achse des Chartarea hinzuzufügen.

StripLine stripline = new StripLine(); 
stripline.Interval = 0; 
stripline.IntervalOffset = average value of the y axis; eg:35 
stripline.StripWidth = 1; 
stripline.BackColor = Color.Blue; 
chart1.ChartAreas[ChartAreaName].AxisY.StripLines.Add(stripline); 
+0

Was ist ChartName in chart1.ChartAreas [ChartName] .AxisY.StripLines.Add (Stripline); – Silver

+0

@Silver, eigentlich ist es der ChartAreaName nicht ChartName ... Ich habe den Code korrigiert ... Danke, dass Sie darauf hingewiesen haben. – Junaith

0

würde ich eine andere Serie mit den gleichen X-Werte hinzufügen, sondern einen konstanten Y-Wert, der die durchschnittliche darstellt.

double avgY = {average of Y points} 

und in der Schleife:

chart1.Series["Series3"].Points.AddXY(stringX, avgY); 
+0

Does nicht fügen Sie eine horizontale Linie hinzu, fügt sie der angegebenen Position eine Spitze hinzu. –