ZedGraph 绘制大量数据
本文关键字:数据 绘制 ZedGraph | 更新日期: 2023-09-27 18:30:22
Hi.
PointPairList list = new PointPairList();
LineItem myCurve = myPane.AddCurve("My Curve", list, Color.Blue,
SymbolType.None);
for (int x = y; x < buffer.Length; x++)
{
list.Add(x, buffer[x]);
}
我有一个文件,它的大小是 40 MB。我正在读取字节并将数据写入缓冲区,因此buffer.lenght
得到一个很大的数字。因此,由于长 for 循环,程序会抛出内存异常。如何在不取出内存异常的情况下绘制所有字节。?
您需要预处理字节数组,生成一个较小的数据集,该数据集是最大水平宽度或图表的 2 倍。
要显示最大宽度像素宽的图表,您将执行以下操作。
int window = (buffer.Length / maxWidth) + 1;
for (int x = 0; x < buffer.Length; x += window)
{
double min = double.MaxValue;
double max = double.MinValue;
for (int j = 0; j < window; j++)
{
int index = x + j;
if (index < buffer.Length)
{
double value = buffer[x+j];
if (value < min)
{
min = value;
}
if (value > max)
{
max = value;
}
}
}
list.Add(x, min);
list.Add(x + (window - 1), max);
}
如果放大,则需要重新计算点列表,以免最终出现锯齿线。