创建折线图时的问题,DateTime为Y,电压为X.

时间:2013-08-14 08:05:47

标签: c# winforms datetime charts

我的任务是清理处理图表绘制的一段代码,此图表将表示一段时间内电压[kV]的变化。我的问题是,到目前为止,它工作得相当糟糕,在标签之间进行了几次切换后停止运转。

你看,有两个单选按钮,它们用于切换数据点上的标记,当你继续前后切换时,应用程序会减速直到它完全停止。

我在树林里迷路了,因为我是一个自己的新手,并没有参与创建这个功能,这两个因素加起来就是一个非常混乱的实习生。

我认为问题在于标签之间切换的逻辑:

                var newSerie = new Series();
                var newSerie2 = new Series();

                newSerie.ChartType = SeriesChartType.Line;
                newSerie.ChartType = SeriesChartType.Line;
                DataPoint dp = _dataPointList[i]; // FROM
                DataPoint dp2 = _dataPointList2[i]; // TO
                newSerie.Color = Color.Orange;
                newSerie2.Color = Color.MidnightBlue;
                string txt1 = _voltageList[i].Endvalue.ToString();
                string txt2 = _voltageList[i].StartValue.ToString();
                dp.Label = txt2;
                dp2.Label = txt1;
                newSerie.Points.Add(dp);
                newSerie2.Points.Add(dp2);
                newSerie.AxisLabel = _voltageList[i].MyStr;
                newSerie2.AxisLabel = _voltageList[i].MyStr;
                _localChart.Series.Add(newSerie);
                _localChart.Series.Add(newSerie2);
                _localChart.Update();
                newSerie.Points.Remove(dp);
                newSerie2.Points.Remove(dp2);

然后循环查看列表中的每个单独数据点。

1 个答案:

答案 0 :(得分:1)

查看您的原始帖子,很明显它需要重构。最初编写它的人不喜欢称这些功能是肯定的!

  • 首先重构所有无关紧要的东西 绘图,就像计算给定月份的秒数一样。 将这些东西重构为函数,甚至辅助类。

  • 然后重构其他一小部分功能,你很快就会完成 开始将这种方法的怪物煮沸到更多的东西 可管理和可调试。

  • 我的猜测是切换按钮增加了2个新系列,但我看不到 旧系列被删除。