如何在小图上绘制多点图

问题描述

| 我有10万个x / y点(高度与距离)在图表上显示,高度为400px,宽度为600px。 如何创建“估计”曲线,以使100000点看起来像一个图形,而不是很多束线? 是否有可以通过缩放为我完成此操作的图表控件?     

解决方法

        我通过将数据沿x轴划分为像素段(在您的情况下为400)完成了一次。我将在每个集合中找到最大值和最小值,并在该x点上绘制一条垂直线。这非常简单,您会对结果感到惊讶。 它仅在绘图区域内的数据点多于x坐标时才有效。但这正是您需要优化的时候。 例如,在x偏移233内,您具有以下数据点。 (1000202,40) (1000203,43) (1000204,47) (1000205,43) (1000206,38) (1000208,35) 这将导致从点(233,35)到(233,47)绘制一条垂直线     ,        我不知道您是否找到问题的答案,但是我开发了一个控件,该控件可以对输入数据进行Nyquist重采样(这样您就只能渲染看到的内容)并立即进行模式渲染(这样您可以获得最佳性能)。结果是,它可以以30FPS的速度平滑渲染100,000 xy点。 Tormod提出的答案将适用于折线图-将输入数据划分为bin,找到最小/最大值,然后绘制这些值,但是对于其他图表类型,您需要更高级的技术。您将看到的另一个效果是混叠。要解决此问题,您可以a。)重采样到更多的bin(例如2x pixelWidth,4x pixelWidth),b。)在绘制时使用抗锯齿功能或c。)使用重采样算法,该算法在下采样之前对数据进行低通滤波。这些技术在数字信号处理中很常见,并且适用于2D绘图。