2014-09-27 52 views
0

我正在使用ZedGraph。我只有一个控件包含三个窗格。我像这样初始化它们:ZedGraph多个窗格

private void GraphIt() 
    { 
     MasterPane master = zedGraphControl1.MasterPane; 
     master.PaneList.Clear(); 

     // Display the MasterPane Title, and set the outer margin to 10 points 
     master.Title.IsVisible = true; 
     master.Title.Text = "Angles"; 
     master.Margin.All = 10; 

     // Create some GraphPane's (normally you would add some curves too 
     GraphPane pane1 = new GraphPane(); 
     GraphPane pane2 = new GraphPane(); 
     GraphPane pane3 = new GraphPane(); 

     // Add all the GraphPanes to the MasterPane 
     master.Add(pane1); 
     master.Add(pane2); 
     master.Add(pane3); 

     pane1.XAxis.Scale.MinorStep = pane2.XAxis.Scale.MinorStep = pane3.XAxis.Scale.MinorStep = 1; 
     pane1.XAxis.Scale.MajorStep = pane2.XAxis.Scale.MajorStep = pane3.XAxis.Scale.MajorStep = 50; 

     PointPairList dummylist = new PointPairList(); 
     myCurve1 = pane1.AddCurve("Angle X", dummylist, Color.Red); 
     myCurve2 = pane2.AddCurve("Angle Y", dummylist, Color.Blue); 
     myCurve3 = pane3.AddCurve("Angle Z", dummylist, Color.Green); 
     myCurve1.Line.Width = myCurve2.Line.Width = myCurve3.Line.Width = 5; 
     myCurve1.Symbol.Size = myCurve2.Symbol.Size = myCurve3.Symbol.Size = 0; 

     // Refigure the axis ranges for the GraphPanes 
     zedGraphControl1.AxisChange(); 

     // Layout the GraphPanes using a default Pane Layout 
     using (Graphics g = this.CreateGraphics()) 
     { 
      master.SetLayout(g, PaneLayout.SquareColPreferred); 
     } 
    } 

我想在一个窗格中绘制每条实时曲线。我在程序运行期间添加点并刷新图形。除了每条曲线的点也被添加到其他曲线之外,一切都是完美的。 例如:

myCurve1.AddPoint(Time, 10); 
myCurve2.AddPoint(Time, 5); 
myCurve3.AddPoint(Time, 1); 

我这样做是为了补充我的观点。什么情况是,每条曲线上,如果我这样做是增加了三点:

myCurve1.AddPoint(Time, 10); 
myCurve1.AddPoint(Time, 5); 
myCurve1.AddPoint(Time, 1); 

myCurve2.AddPoint(Time, 10); 
myCurve2.AddPoint(Time, 5); 
myCurve2.AddPoint(Time, 1); 

myCurve3.AddPoint(Time, 10); 
myCurve3.AddPoint(Time, 5); 
myCurve3.AddPoint(Time, 1); 

回答

2

更改此:

PointPairList dummylist = new PointPairList(); 
myCurve1 = pane1.AddCurve("Angle X", dummylist, Color.Red); 
myCurve2 = pane2.AddCurve("Angle Y", dummylist, Color.Blue); 
myCurve3 = pane3.AddCurve("Angle Z", dummylist, Color.Green); 

这样:

PointPairList dummylist = new PointPairList(); 
myCurve1 = pane1.AddCurve("Angle X", dummylist, Color.Red); 
dummylist = new PointPairList(); 
myCurve2 = pane2.AddCurve("Angle Y", dummylist, Color.Blue); 
dummylist = new PointPairList(); 
myCurve3 = pane3.AddCurve("Angle Z", dummylist, Color.Green);