Power BI 中的采样算法可改进采样高密度数据的视觉对象。 例如,您可以根据零售店的销售结果创建折线图,每个商店每年都有超过 10,000 张销售单据。 此类销售信息的折线图将为每个商店的数据采样,并创建一个多系列折线图,然后表示基础数据。 请务必选择该数据的有意义表示形式,以说明销售额随时间的变化。 这种做法在可视化高密度数据时很常见。 本文介绍了高密度数据采样的详细信息。
注释
本文中所述的 高密度采样 算法在 Power BI Desktop 和 Power BI 服务中均可用。
高密度线采样的工作原理
以前,Power BI 以确定性的方式在各种基础数据中选择了一组示例数据点。 例如,对于跨一个日历年的视觉对象上的高密度数据,视觉对象中可能会显示 350 个示例数据点,其中每个数据点都已选中,以确保视觉对象中表示整个数据范围。 为了帮助了解这种情况的发生方式,假设在一年内绘制股票价格并选择 365 个数据点来创建折线图视觉对象。 这是每天的一个数据点。
在这种情况下,每天股票价格会有许多不同的波动值。 当然,每天有一个高点和低点,但这些可能发生在股市开盘的一天中的任何时间。 对于高密度行采样,如果每天上午10:30和中午12:00对基础数据进行采集,则可以获得基础数据的代表性快照,例如这两个时间点的价格。 但是,该快照可能无法获取当天代表性数据点的实际股票价格的高点和低点。 在这种情况下和其他情况下,采样代表基础数据,但它并不总是捕获重要点,而在这种情况下,重要点是每日股票价格的高点和低点。
根据定义,对高密度数据进行采样,以合理快速地创建响应交互的可视化效果。 视觉对象中的数据点过多可能会拖慢其效率,并降低趋势的可见性。 如何对数据进行采样,是什么驱动创建采样算法以提供最佳可视化体验。 在 Power BI Desktop 中,该算法提供了每次切片中重要点的响应能力、表示性和清晰保存的最佳组合。
新行采样算法的工作原理
高密度折线采样算法适用于具有连续 x 轴的折线图和面积图视觉对象。
对于高密度视觉对象, Power BI 可智能地将数据切片为高分辨率区块,然后选取重要点来表示每个区块。 对高分辨率数据切片的过程进行了优化,以确保生成的图表在视觉上与呈现所有基础数据点时无区别,同时速度更快且交互性更强。
高密度线条可视化的最小值和最大值
对于任何可视化效果,以下限制适用:
3,500 是大多数视觉对象上 显示 的最大数据点数,而不考虑基础数据点或系列的数量,请参阅以下列表中的 异常 。 例如,如果你有 10 个系列,每个系列有 350 个数据点,则可视化已达到其最大整体数据点限制。 如果你有一个系列,并且算法认为这是基础数据的最佳采样方式,那么它最多可以有 3,500 个数据点。
对于任何视觉对象,最多有 60 个系列 。 如果系列超过 60 个,请拆分数据,并创建多个具有 60 个或更少的序列的视觉对象。 最好使用 切片器 仅显示数据段,但仅适用于特定系列。 例如,如果要显示图例中的所有子类别,则可以使用切片器按同一报表页上的总体类别进行筛选。
以下视觉对象类型的最大数据限制数更高,这些限制是 3,500 个数据点限制的 例外 :
- R 视觉对象的最大数据点为 150,000 个。
- Azure Map 视觉对象的 30,000 个数据点。
- 某些散点图配置的数据点为 10,000 个(散点图默认为 3500 个数据点)。
- 对于使用高密度采样的所有其他视觉对象,为 3,500。 其他一些视觉对象可能会可视化更多数据,但它们不会使用采样。
这些参数可确保 Power BI Desktop 中的视觉对象快速呈现、响应用户交互,并且不会导致计算机呈现视觉对象的不正当计算开销。
评估高密度线条可视化的代表性数据点
当基础数据点数超过可在可视化中表示的最大数据点数时,一个名为装箱的进程将开始。 将基础数据分块成称为 分箱 的组,然后迭代优化这些分箱。
该算法会创建尽可能多的箱来为视觉对象创建最大的粒度。 在每个箱中,算法会查找数据值的最小值和最大值,以确保在可视化中捕获和显示重要值,例如离群值。 根据 Power BI 对数据分箱的结果以及后续评估,确定可视化对象的 x 轴最低分辨率,以确保达到可视化对象的最高粒度。
如前所述,每个系列的最小粒度为 350 点,而大多数视觉化对象的最大粒度为 3,500 点。 前面的段落中列出了 这些例外 。
每个分箱由两个数据点表示,这些数据点成为可视化中该分箱的代表性数据点。 这些数据点代表该区间的最大值和最小值。 通过选择高值和低值,装箱过程可确保在可视化中捕捉并呈现任何关键的高值或低值。
如果这听起来像是需要大量的分析来确保捕获并在可视化中正确显示偶尔的离群值,那么你是对的。 这是算法和分箱过程的具体原因。
工具提示和高密度线采样
请务必注意,此装箱过程会导致捕获和显示给定箱中的最小值和最大值,可能会影响将鼠标悬停在数据点上时工具提示显示数据的方式。 为了解释这种情况的发生方式和原因,让我们回顾一下有关股价的示例。
假设你正在基于股票价格创建视觉对象,并且比较了两个不同的股票,这两种股票都使用 高密度采样。 每个系列的基础数据具有许多数据点。 例如,也许你记录当天每秒的股票价格。 高密度线采样算法为每个系列单独执行分箱操作。
现在,假设第一只股票以12:02的价格上涨,然后在10秒后迅速回落。 这是一个重要的数据点。 当该库存发生装箱时,高点为 12:02 是该箱的代表数据点。
然而,对于第二只股票来说,12:02在包含该时间的区间中既不是高点也不是低点。 也许包含 12:02 的时间段其高点和低点出现在三分钟之后。 在这种情况下,创建折线图并将鼠标悬停在 12:02 上时,会看到第一只股票的工具提示中的值。 这是因为它在 12:02 跳变,并且该值被选择为该数据区间的高数据点。 但是,您不会在第二只股票的12:02时在工具提示中看到任何值。 这是因为第二只股票在分析时段包含 12:02 的时间段内没有高点或低点。 因此,第二只股票在 12:02 无数据显示,因此工具提示中的数据不会显示。
这种情况在工具提示中经常出现。 特定箱的高值和低值可能与等距缩放的 x 轴值点不完全匹配,并且工具提示中不显示该值。
如何启用高密度行采样
默认情况下,算法为 On。 若要更改此设置,请转到“常规”卡中的“格式设置”窗格,然后沿着底部看到“高密度采样”滑块。 选择滑块以切换打开或关闭。
注意事项和限制
高密度行采样算法是 Power BI 的重要改进,但使用高密度值和数据时,需要了解一些注意事项。
由于粒度的增加和装箱过程,工具提示 可能仅在代表性数据与游标对齐时显示值。 有关详细信息,请参阅本文中的 工具提示和高密度行采样 部分。
当整体数据源的大小太大时,该算法会消除序列(图例元素)以适应数据导入最大约束。
- 在这种情况下,算法按字母顺序对图例系列进行排序,并从字母顺序排列的图例元素列表开始,直到达到数据导入的最大值时停止导入更多系列。
当基础数据集包含超过 60 个序列时,算法会按字母顺序对这些序列进行排序,并消除第 60 个之后的序列。
如果数据中的值不是 数值 或 日期/时间类型,Power BI 将不会使用该算法,并且会还原到以前的非高密度采样算法。
算法不支持显示没有数据的项设置。
使用与 SQL Server Analysis Services 版本 2016 或更早版本中托管的模型的实时连接时,不支持该算法。 在 Power BI 或 Azure Analysis Services 中托管的模型均支持该功能。