簡體   English   中英

ZedGraph繪制大量數據

[英]ZedGraph plotting large amount of data

你好。

            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倍。

要顯示maxWidth像素寬的圖表,您將執行以下操作

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);
}

如果放大,則需要重新計算點列表,以免最終看不到鋸齒線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM