我有一个包含 100,000 个数据点的数据集,需要将其绘制在图形上。结果图形将大约为 500 像素宽,因此每个像素将有大约 200 个数据点,这似乎很不必要。
我需要找到一种方法来消除多余的数据点而不会失去图形的形状,以加快渲染速度。目前,所有 100,000 个点的渲染可能需要10秒以上,因为我还使用了反走样和其他“效果”。
我试图通过仅使用每200个数据点并绘制它们来解决这个问题,但是这会导致一些更重要的点被省略(考虑我想要显示的图中的尖峰)。我也考虑将数据集拆分为每200个数据点的块,然后从每个块中取最大值,但这也行不通。
请问是否有任何方法适用于我的需求?我正在使用 PHP 语言编写,图表由 GD 创建,数据来自 MySQL,因此对其中一些进行优化也是可以的。
数据的格式如下:
Datetime Value
2005-01-30 00:00:00 35.30
2005-01-30 01:00:00 35.65
2005-01-30 02:00:00 36.15
2005-01-30 03:00:00 35.95
...
最终生成的图表目前看起来像这样: