我正在使用C#,并希望绘制折线图以显示我的数据,数据可以存储为双数组,数字可能非常大,可能超过100000,我也想更新数据源一直都在,但是当我使用Microsoft Win Chart时,如果数字太大(20000会给用户带来非常糟糕的体验),刷新率会非常慢,我使用的是FastLine / FastPoint chartType,但是不给我太多改进,而且我也尝试直接将数据绑定到Points.DataBindY方法,仍然感觉不太好。
有没有人有过如何处理这个问题的经验?
非常感谢。
答案 0 :(得分:1)
你会发现尝试绘制这个点数(100k)即使是最强大的图表控件也会压倒一切。我会质疑为什么甚至有必要这样做。你怎么可能在图表上区分100k点?这似乎没必要。大多数图表控件(我最熟悉WPF控件)允许您“采样”数据(通过采样阈值)。这使您仍然可以保留数据的一般形状,但使用的数据点更少,性能更好。
另外,绑定数据时要非常小心。使用许多图表控件时,绑定数据时,绑定到图表的每个数据点都会刷新图表。您可以想象100k刷新会做什么:(。如果可以的话,找到一种方法在所有数据绑定到图表后刷新图表。
答案 1 :(得分:1)
解决方案可能是将比例缩小到1:10000,大大减少了绘制点,同时保持相同的平局。
您可以通过处理数据数组然后将其提供给图表来完成此操作。
答案 2 :(得分:0)
答案 3 :(得分:0)
试试这个:
chart1.Series[0].ChartType = SeriesChartType.FastLine;
或
chart1.Series[0].ChartType = SeriesChartType.FastPoint;
如果您需要绘制超过100,000个数据点,您还可以考虑使用FastLine和FastPoint图表类型。它们不支持常规Line和Point图表的所有功能,但会显着提高图表性能。
用于其他类型的图表。 idk要么。