我有这个方法:
private void plotGraph(List<float> data)
{
GraphPane myPane = zedGraphControl1.GraphPane;
// Set the Titles
myPane.Title.Text = "Symulacja";
myPane.XAxis.Title.Text = "Czas";
myPane.YAxis.Title.Text = "Wartość sygnału";
myPane.XAxis.Scale.Max = 20;
myPane.YAxis.Scale.Max = 5;
myPane.YAxis.Scale.Min = -5;
PointPairList PairList = new PointPairList();
double x = 0;
for (int i = 0; i <= 1000; i++)
{
PairList.Add(x, data[i]);
x += 0.01;
}
LineItem ACurve = myPane.AddCurve("Team A", PairList, Color.Red, SymbolType.None);
zedGraphControl1.Refresh();
zedGraphControl1.AxisChange();
}
第一次调用它时一切正常,函数绘制我想要的绘图(点的Y值来自列表数据)。现在,我称之为第二个和每隔一个时间,在第一个上面绘制一条新线(旧线留在图表上)。我希望旧的一个在绘制新的时候消失,我该怎么做才能产生这种效果?
答案 0 :(得分:1)
您必须先删除旧曲线。如果你只有一条曲线,你将删除带有标签&#34; Team A&#34;的曲线,然后将PairList添加到一个新实例。但是,如果将来需要同时使用多条曲线,则需要将标签作为参数传递给方法。
要仅每次删除一条单独的曲线,请在调用AddCurve之前添加以下代码。索引为-1表示CurveList元素不存在。
int curveIndex = myPane.CurveList.IndexOfTag("Team A");
if (curveIndex != -1)
{
myPane.CurveList.RemoveAt(curveIndex);
}
您可以删除/添加任意数量的曲线,但您必须有一个标记来标识您希望更改的曲线。标签变量将取代&#34; Team A&#34;上方。