如何在 ZedGraph C# 中删除旧曲线

How to delete old curve in ZedGraph C#

我有这个方法:

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 值来自列表数据)。现在,第二次和每隔一次我调用它时,都会在第一条线上绘制一条新线(旧线留在图表上)。我希望在绘制新的时旧的消失,我应该怎么做才能达到这种效果?

您必须先删除旧曲线。如果您只有一条曲线,则可以删除带有标签 "Team A" 的曲线,然后将 PairList 添加到新实例。但是,如果将来您需要同时使用多条曲线,则需要将标签作为参数传递给您的方法。

要每次只删除一条单独的曲线,请在调用 AddCurve 之前添加以下代码。索引 -1 表示 CurveList 元素不存在。

int curveIndex = myPane.CurveList.IndexOfTag("Team A");
if (curveIndex != -1)
{
    myPane.CurveList.RemoveAt(curveIndex);
}

您可以 remove/add 任意数量的曲线,但您必须有一个标签来标识要更改的曲线。标签变量将替换上面的"Team A"。