Не могу заставить zedgraph работать - PullRequest
0 голосов
/ 17 января 2012

Я пытался создать метод, который вставлял бы некоторые числа в zedgraph.Но это не сработает.Это мой код:

        string title = "Contemporary Quality";
        string xaxis = "Amount";
        string yaxis = "Percent";
        zedGraphControl3.GraphPane.CurveList.Clear();
        zedGraphControl3.GraphPane.GraphObjList.Clear();
        GraphPane myPane = zedGraphControl3.GraphPane;
        myPane.GraphObjList.Clear();
        myPane.CurveList.Clear();
        myPane.XAxis.Title.Text = xaxis;
        myPane.Title.Text = title;
        myPane.YAxis.Title.Text = yaxis;
        myPane.XAxis.Scale.MinAuto = false;
        myPane.XAxis.Scale.MinGrace = -0.5;
        myPane.XAxis.Scale.Max = 16;
        myPane.BarSettings.Type = BarType.PercentStack;
        double[] x = new double[] { zg1.GraphPane.XAxis.Scale.Min, zg1.GraphPane.XAxis.Scale.Max };
        double[] y = new double[] { 20, 20 };
        ZedGraph.LineItem lineItem = new ZedGraph.LineItem("cursorY1", x, y, Color.Black, ZedGraph.SymbolType.None);
        lineItem.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash;
        lineItem.IsSelectable = false;
        lineItem.Label.IsVisible = false; // hides the cursor in the legend
        zg1.GraphPane.CurveList.Add(lineItem);

        y = new double[] { 40, 40 };
        lineItem = new ZedGraph.LineItem("cursorY2", x, y, Color.Black, ZedGraph.SymbolType.None);
        lineItem.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash;
        lineItem.IsSelectable = false;
        lineItem.Label.IsVisible = false; // hides the cursor in the legend
        zg1.GraphPane.CurveList.Add(lineItem);
        y = new double[] { 60, 60 };
        lineItem = new ZedGraph.LineItem("cursorY3", x, y, Color.Black, ZedGraph.SymbolType.None);
        lineItem.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash;
        lineItem.IsSelectable = false;
        lineItem.Label.IsVisible = false; // hides the cursor in the legend
        zg1.GraphPane.CurveList.Add(lineItem);
        y = new double[] { 80, 80 };
        lineItem = new ZedGraph.LineItem("cursorY4", x, y, Color.Black, ZedGraph.SymbolType.None);
        lineItem.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash;
        lineItem.IsSelectable = false;
        lineItem.Label.IsVisible = false; // hides the cursor in the legend
        zg1.GraphPane.CurveList.Add(lineItem);

        PointPairList PPLa = new PointPairList();
        PointPairList PPLb = new PointPairList();
        PointPairList PPLc = new PointPairList();
        PointPairList PPLd = new PointPairList();
        PointPairList PPLf = new PointPairList();

        int a = 0;
        int b = 0;
        int c = 0;
        int d = 0;
        int f = 0;

        List<string> newlistString = new List<string>();
        DateTime end = dateTimePicker2.Value.Date;
        DateTime start = dateTimePicker1.Value.Date;
        newlistString = ctrscan.AnalyzeOldScans(start, end);

        for (int h = 0; h <= (newlistString.Count - 1); h++)
        {
            if (newlistString[h].Equals("A"))
            {
                a = a + 1;
            }
            if (newlistString[h].Equals("B"))
            {
                b = b + 1;
            }

            if (newlistString[h].Equals("C"))
            {
                c = c + 1;
            }
            if (newlistString[h].Equals("D"))
            {
                d = d + 1;
            }
            if (newlistString[h].Equals("F"))
            {
                f = f + 1;
            }
            double aa = Convert.ToDouble(a);
            double bb = Convert.ToDouble(b);
            double cc = Convert.ToDouble(c);
            double dd = Convert.ToDouble(d);
            double ff = Convert.ToDouble(f);
            PPLa.Add(h,aa);
            PPLa.Add(h, bb);
            PPLa.Add(h, cc);
            PPLa.Add(h, dd);
            PPLa.Add(h, ff);
        }
        Console.WriteLine(a+" "+b+" "+c+" "+d+" "+f);
        BarItem myBara = myPane.AddBar("Quality A", PPLa, Color.Red);
        BarItem myBarb = myPane.AddBar("Quality B", PPLb, Color.Blue);
        BarItem myBarc = myPane.AddBar("Quality C", PPLc, Color.Gray);
        BarItem myBard = myPane.AddBar("Quality D", PPLd, Color.Black);
        BarItem myBarf = myPane.AddBar("Quality F", PPLf, Color.Pink);


        zedGraphControl3.AxisChange();
        zg1.AxisChange();

Вывод "consolewriteline": 0 15 56 4 9. И поэтому я ожидаю, что на графике как минимум 4 бара.Но ничего не происходит.Надеюсь, кто-нибудь знает .. Спасибо.

1 Ответ

0 голосов
/ 17 января 2012
    PPLa.Add(h,aa);
    PPLa.Add(h, bb);
    PPLa.Add(h, cc);
    PPLa.Add(h, dd);
    PPLa.Add(h, ff);

должно быть:

    PPLa.Add(h,aa);
    PPLb.Add(h, bb);
    PPLc.Add(h, cc);
    PPLd.Add(h, dd);
    PPLe.Add(h, ff);

Я надеюсь, что это сработает для вас

...