如何在 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"。
我有这个方法:
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"。