如何在小图上绘制多点图



我有10万个x/y点(海拔超过距离)要在一张高400px、宽600px的图上绘制。

如何创建一条"估计"曲线,使10万个点看起来像一张图,而不是很多成束的线?

有没有图表控件可以通过缩放为我做到这一点?

我曾经这样做过,将数据沿x轴划分为像素段(在您的例子中为400)。我会在每个集合中找到最大值和最小值,然后在x点上画一条垂直线。这很简单,你会对结果感到惊讶。只有当绘图区域中的数据点多于x个corinate时,它才有效。但不管怎样,这正是你需要优化的时候。

例如,在x偏移量233内,您有以下数据点。

(1000202,40)(1000203,43)(1000204,47)(1000205,43)(1000206,38)(1000208,35)

这将导致从点(233,35)到(233,47)绘制一条垂直线

我不知道你是否找到了问题的答案,但我开发了一个控件,可以对输入数据进行奈奎斯特重采样(所以你只渲染你能看到的)和即时模式渲染(所以你能获得最佳性能)。结果是,它可以以30FPS平滑地渲染100000个xy点。

Tormod提出的答案适用于折线图——将输入数据划分为多个区间,找到最小值/最大值,然后绘制这些区间,但对于其他图表类型,你需要更先进的技术。您将看到的另一个效果是锯齿。为了解决这个问题,你可以a.)重新采样到更多的bin(例如2x pixelWidth,4x pixel Width),b.)在绘图时使用抗锯齿,或者c.)使用重新采样算法,在下采样之前对数据进行低通滤波。这些技术在数字信号处理中很常见,适用于2D绘图。

最新更新