Ich verwende das MS-Diagramm-Steuerelement in .Net 4, um 4 Datenreihen anzuzeigen, die X-Achse ist auf Datetime-Typ festgelegt.Datetime Typ X-Achse auf MS Chart-Steuerelement ohne Wochenenden anzuzeigen
mit dem auf Tage eingestellten Intervall schließt das Diagramm das Wochenende ein, obwohl in den Daten keine Wochenenddaten enthalten sind.
Alle Serien außer einem haben die gleichen Datumspunkte, die Ausnahme ist eine Projektionslinie, die am letzten Datum beginnt und für eine Anzahl von Arbeitstagen fortgeführt wird (Wochenenden ausgenommen).
Wie kann die Anzeige von Wochenenden (oder Daten, die keinen Wert haben) aus dem Diagramm für alle Serien entfernt werden?
Dies ist eine Winforms. NET 4.0-Anwendung.
foreach (var series in chart2.Series)
{
series.ChartType = SeriesChartType.Line;
series.BorderWidth = 5;
series.XValueType = ChartValueType.Date;
// I Tried this to remove weekends but it results in the graph showing a big red X
series.IsXValueIndexed = true;
}
Bearbeiten mit-Code mein Problem unten zu reproduzieren:
DateTime dt = DateTime.Now;
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Days;
Series test1 = new Series("Test1");
test1.XValueType = ChartValueType.Date;
for (int i = 1; i < 7; i++)
{
//skip the weekend
if (dt.DayOfWeek.ToString() == "Saturday") dt = dt.AddDays(1);
if (dt.DayOfWeek.ToString() == "Sunday") dt = dt.AddDays(1);
test1.Points.AddXY(dt.Date, i);
dt = dt.AddDays(1);
i++;
}
chart1.Series.Add(test1);
Series test2 = new Series("Test2");
test1.XValueType = ChartValueType.Date;
for (int i = 1; i < 7; i++)
{
//skip the weekend
if (dt.DayOfWeek.ToString() == "Saturday") dt = dt.AddDays(1);
if (dt.DayOfWeek.ToString() == "Sunday") dt = dt.AddDays(1);
test2.Points.AddXY(dt.Date, i);
dt = dt.AddDays(1);
i++;
}
chart1.Series.Add(test2);
foreach (var series in chart1.Series)
{
series.ChartType = SeriesChartType.Line;
series.BorderWidth = 5;
series.IsXValueIndexed=true;
}
chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 45;
chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1;
Hi Taw, danke für Ihre Antwort, ich habe oben genannten Code hinzugefügt, um mein Problem zu zeigen! Wenn ich alle Test2 ausstempeln Sachen, die Test1 mit beiden funktioniert, bekomme ich das rote X. von oben muss ich eine leere Datenpunkte für alle Daten in Test eins und test2 zu beiden Reihen hinzufügen? – Adrian
Ja, das ist, wenn du tatsächlich __wanted__ hast, um 'dt' weiter zu zählen, ohne es zwischen den beiden Serien zu setzen ..!? – TaW
ja das ist nur ein Beispiel für real Ich zeichne eine Sequenz und dann eine Projektion, die die Linie erweitern wird. Wie sage ich alle leeren Datenpunkte zu jedem hinzufügen, wie sie über den Beginn von test2 und nach dem Ende von test1 sind? können Sie mir zeigen, wie ich das tun würde? – Adrian