ZedGraph 如何清空曲线

ttiimm11 2010-10-07 11:18:00
VS2005+ZedGraph 5.1.5 Winform

我用下面的方法加了两条参考线

private PointPairList lstStart1 = new PointPairList();
private PointPairList lstStart2 = new PointPairList();
private void draw()
{
lstStart1.Add(5.00, 2.0);
lstStart1.Add(9.00, 2.0);
lstStart1.Add(9.00, 1.0);
myCurve1 = myPane.AddCurve("Min", lstStart1, Color.Red, SymbolType.None);

lstStart2.Add(5.00, 2.60);
lstStart2.Add(9.00, 2.60);
myCurve2 = myPane.AddCurve("Max", lstStart2, Color.Yellow, SymbolType.None);
}



然后我用一个循环继续往图表里画线

if (i <= 36)
{
double x = i;
double y = 1.5 + Math.Sin(i * 0.2);
y = Math.Round(y, 3);
list1.Add(x, y);

myCurve = myPane.AddCurve("", list1, Color.White, SymbolType.None);

zedGraphControl1.GraphPane = myPane;
zedGraphControl1.AxisChange();
zedGraphControl1.Refresh();
Application.DoEvents();

}

问题如下:

如果我最后不加myPane.CurveList.Clear();这句的话,绘制曲线会越来越慢(一个循环10毫秒),所以我想达到的要求是,当循环绘制的曲线超过10条的时候,清除最早的一条,也就是说图中只保留最新的10条曲线,但不能清除事先画好的参考线(清除了,重画也可以,但不能把所有曲线都一次清除了,要保留最新的10条)
...全文
1004 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
d545277076 2012-04-24
  • 打赏
  • 举报
回复
if (list.Count > 10)

{

list.RemoveAt(0);

}

zhengqiushao 2011-12-25
  • 打赏
  • 举报
回复
我也 遇到同样的问题。绘制曲线越来越慢。请问有什么好的方法可以清楚过去的数据。如果用了zedChart.GraphPane.CurveList.Clear(),本来鼠标浮在点上可以显示该点的数据信息。现在加了以后就不能显示了。
才才 2011-11-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
Refresh()方法可以强制控件进行重绘
先清除
zedChart.GraphPane.CurveList.Clear();
zedChart.GraphPane.GraphItemList.Clear();
重新绘制
zedChart.AxisChange();
zedChart.Refresh();
[/Quote]
GraphItemList 没有这个属性
ttiimm11 2010-10-07
  • 打赏
  • 举报
回复
我要保留最新的10条曲线以及参考线,这个如何实现???
zedGraphControl1.GraphPane.CurveList.Clear();这样把所有的曲线都清空了。
wuyq11 2010-10-07
  • 打赏
  • 举报
回复
Refresh()方法可以强制控件进行重绘
先清除
zedChart.GraphPane.CurveList.Clear();
zedChart.GraphPane.GraphItemList.Clear();
重新绘制
zedChart.AxisChange();
zedChart.Refresh();

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧