none
XValue bei der Diagramm in der mitte machen RRS feed

  • Frage

  • Hallo,

    meine XValue(Datum) bei der Diagramm sind nicht mittig. Ich möchte, dass sie in der mitte von jede stackedcolumm stehen.  ich lese meine Daten mit einem SQL_Abfrage. bei der X-Achse habe ich ChartValueType.Date.

    Ich habe gefunden, dass man mit folgende funktion machen kann area1.AxisX.CustomLabels.Add(); aber ich kann diese nicht im meinen Fall einsetzen. So passe ich meine X-Achse an.

     using (SqlCommand command = new SqlCommand("USE BarForce SELECT CONVERT(date, F1) AS Dat1, COUNT(CONVERT(date, F1)) AS Anz1 FROM SlitteApp WHERE F1 IS NOT NULL"))
    
    double End = DateTime.Now.ToOADate();
    double Start = End - 30; series1.Points.DataBind(table.AsEnumerable(), "Dat1", "Anz1", null); 
    series1.XValueType = ChartValueType.Date; area1.AxisX.Minimum = Start; 
    area1.AxisX.Maximum = End;

    Danke
    Dienstag, 20. Januar 2015 11:42

Antworten

  • Hallo,

    Die lösung für diese Frage war:

     
     foreach (DataPoint point in series5.Points)
                {
                   
                    double s = point.XValue;
                    DateTime mydate = DateTime.FromOADate(s);
                    string date = mydate.ToString("dd/MM");
                
                    area1.AxisX.CustomLabels.Add(new CustomLabel(point.XValue - 1, point.XValue + 1, date, 0, LabelMarkStyle.None));
                }

    Lg

    Dienstag, 3. Februar 2015 09:24

Alle Antworten

  • Hallo,

    Hier in Bild zu illustrieren meine Frage.

    Man kann nicht erkennen, welches Datum gehört zu welcher Ergebnisse.

    Danke



    • Bearbeitet maness Dienstag, 20. Januar 2015 16:01
    Dienstag, 20. Januar 2015 15:58
  • Hallo,

    ich habe die folgende code probiert bei jede Serie.

    foreach (DataPoint point in series1.Points)
                {
                    area1.AxisX.CustomLabels.Add(new CustomLabel(point.XValue - 1, point.XValue + 1, point.AxisLabel, 0, LabelMarkStyle.None));
                }

    Jetzt kommt die Werte von X in der Mitte, aber nicht in richtigen Format(Datetime) sondern in Double. Und die Tickmark sind auch nicht in der mitte

    Woran kann das liegen? Vielen Dank im vorraus



    • Bearbeitet maness Dienstag, 20. Januar 2015 16:19
    Dienstag, 20. Januar 2015 16:15
  • Hallo,
    wenn ich dich richtig verstehe, dann geht es dir um die Beschriftung der Serien. Dafür kannst du einfach den Konstruktoren bzw. der Add-Methode den Namen übergeben:
    var series1 = chart1.Series.Add("Meine 1. Datenreihe");


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Dienstag, 20. Januar 2015 23:19
    Moderator
  • Hallo,

    es geht nicht um die Beschriftund der Serien, sondern um die Darstellung meine XValueMembers in Diagramm. Die Datum (Xvalue) sind ein bisschen verschoben. nicht in der mitte von jede StackedColumm. folgende beispiel ist richtig. Jan, Feb, Mar, Apr Usw... sind genau in der mitte(Siehe Bild)

    Mittwoch, 21. Januar 2015 08:12
  • Hallo,

    Ich habe genau die Gleiche Problem wie William siehe folgende Link. Aber meine DATEN sind nicht fest und ich lese die Daten mit Sql_Abfrage. deswegen habe ich schwierigkeit die For-Schleife in Lösung zu machen.

    Link:

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/6ac5902f-386b-4e6b-ad4b-cd32c31186ae/how-to-position-xaxis-dates-in-column-chart

    Danke

    Mittwoch, 21. Januar 2015 08:50
  • Hallo,

    so kommt schon die Positionierung der Datum in der mitte. Aber jetzt mit zahlen(double),

    nicht in dateFormat("dd/MM/YYYY")

    foreach (DataPoint point in series1.Points)
                {
    //DateTime mydate = DateTime.FromOADate(point);
    area1.AxisX.CustomLabels.Add(new CustomLabel(point.XValue - 1, point.XValue + 1, point.XValue.ToString(), 0, LabelMarkStyle.None));
                }
    Ich möchte dies wieder im DateFormat haben. Danke


    • Bearbeitet maness Mittwoch, 21. Januar 2015 10:28
    Mittwoch, 21. Januar 2015 10:27
  • Hallo maness

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
     Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
     +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Gruß

    Aleksander


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht,  kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 30. Januar 2015 11:27
  • Hallo,

    Die lösung für diese Frage war:

     
     foreach (DataPoint point in series5.Points)
                {
                   
                    double s = point.XValue;
                    DateTime mydate = DateTime.FromOADate(s);
                    string date = mydate.ToString("dd/MM");
                
                    area1.AxisX.CustomLabels.Add(new CustomLabel(point.XValue - 1, point.XValue + 1, date, 0, LabelMarkStyle.None));
                }

    Lg

    Dienstag, 3. Februar 2015 09:24