2012-01-17 5 views
0

Я попытался сделать метод, который вставляет некоторые цифры в zedgraph. Но это не сработает. Это мой код:Не удается заставить 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 бара на графике. Но ничего не происходит. Надеюсь, кто-нибудь знает .. Спасибо.

+0

Я также попытался перенести «plla.add» методы вне цикла, и что Didn Не работай. – WildBoar

+0

Вы заполняете только PPLa значениями, которые нуждаются в изменении, PPLb и т. Д. Могут быть заполнены также – Moonlight

+0

OMG, это было так хромо. Спасибо, в любом случае! – WildBoar

ответ

0
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); 

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

+0

Но ничего не показывает ?? – WildBoar

+0

который не показывает? zg1 или zg3? также. взгляните на PPLa-e, чтобы проверить, правильно ли это заполнено. если нет, вам нужно посмотреть на свою заполняющую часть кода. и еще один, сделайте свой myPane.Barsetting нормальным, чтобы увидеть, есть ли что-нибудь работающее – Moonlight

Смежные вопросы