小弟的一个项目中要用measurestudio的scattergraph,要能在一个图中显示多个波形,我建了一个scatterplot的数组,把要用的点坐标(x,y)用一个结构数组保存,然后对每个scatterplot数组调用PlotXYAppend(),按常理来说应该是能画出几条波形的,结果调试的时候第一个波形的终点连上了第二个波形的起始点,调试的时候各个scatterplot中的(x,y)的值是正确的。我也不清楚为什么,我之前看了NI给的些例子,基本上都是按他们写的编的代码,但就是不行,我也不知道怎么搞的
附部分代码:
            ArrayList Sensor = new ArrayList();
            ArrayList datapoint = new ArrayList();
            int i = 0; 
 
 
            NationalInstruments.UI.ScatterPlot[] scatterPlot = new NationalInstruments.UI.ScatterPlot[Sensor.Count];   //实例化ScatterPlot数组
            foreach (int sensorID in Sensor)    //Sensor中一个元素对应一条曲线
            {
                scatterPlot[i] = graphControl.PlotGetInstance(); //graphControl是个用户控件,里面有scattergraph控件
                scatterPlot[i].XAxis = xAxis;
                scatterPlot[i].YAxis = yAxis;
                xAxis.MajorDivisions.LabelFormat = new NationalInstruments.UI.FormatString(NationalInstruments.UI.FormatStringMode.DateTime, "yyyy-M-d H:m");
                xAxis.Range = new NationalInstruments.UI.Range(dateStart.Value, dateEnd.Value);
                
                yAxis.Range = new NationalInstruments.UI.Range(0, 20);
                datapoint = DSMS.BL.DataSearchBL.GetData(sensorID, dateStart.Value, dateEnd.Value);  //取点函数,datapoint 为一个实体类的数组
                foreach (DataPointVO dataPoint in datapoint)    //dataPoint 为实体类,有date即x轴坐标,data即y轴坐标
                {
                    scatterPlot[i].PlotXYAppend(dataPoint.date, dataPoint.data);
                }
                i++;
                datapoint = null;
            }
                ViewList.Controls.Add(graphControl);
 
欢迎大家讨论啊,我感觉我代码没问题啊