练习 - 使用 render 运算符可视化数据
我们已使用气象数据集来聚合和比较 2007 年美国各州中某些类型的风暴事件数量。 在这里,你将借助时间装箱图可视化这些结果。
使用 render
运算符
回顾一下,你已使用 summarize
运算符按通用字段(如“州/省/市/自治区”)对事件进行分组。 在上一单元中,你使用了不同版本的 count
运算符来按州/省/市/自治区比较事件的数量和类型。 可视化这些结果有助于跨州比较活动。
若要可视化结果,你将使用 render
运算符。 此运算符位于查询末尾。 在 render
运算符中,你将指定要使用的可视化效果类型,例如 columnchart
、barchart
、piechart
、scatterchart
、pivotchart
等。 还可以选择定义可视化效果的不同属性,例如 x 轴或 y 轴。
在此示例中,你将使用条形图可视化上一个查询。
运行以下查询。
StormEvents | summarize count(), EventsWithDamageToCrops = countif(DamageCrops > 0), dcount(EventType) by State | sort by count_ | render barchart
应获得如下图所示的结果:
请注意条形图右侧的图例。 图例中的每个值都表示按查询中的“州/省/市/自治区”汇总的不同数据列。 尝试选择其中一个值(如 count_),以切换条形图中此数据的显示。 通过切换 count_,可以删除总计数并保留造成损失的事件数和不同事件数。 应获得如下图所示的图:
查看生成的条形图。 可以从中获取哪些见解? 例如,你可能会注意到德克萨斯州具有最多单个风暴事件,但爱荷华州具有破坏风暴事件的最高几率。
使用 bin()
函数对值进行分组
到目前为止,你已使用聚合函数按“州/省/市/自治区”对事件进行分组。 现在,我们通过按时间对数据进行分组来查看全年风暴的分布情况。 每个记录中的时间值都是开始时间和结束时间。 我们按周对事件开始时间进行分组,以便可以看到 2007 年每周发生的风暴数量。
你将使用将值分组为设置间隔的 bin()
函数。 例如,你可能有来自一年中每天的数据,并且你希望按周对这些日期进行分组。 或者,你希望按年龄箱对人口数据进行分组。此运算符的语法为:
bin(
value,
roundTo)
箱值可以是数字、日期或时间跨度。 你将使用 bin()
函数聚合计数,以便每周提供事件计数。 要分组的值是风暴事件的 StartTime,并将 roundTo 箱大小缩写为 7days 或 7d。 最后,将数据呈现为柱形图以创建直方图。
运行以下查询:
StormEvents | summarize count() by bin(StartTime, 7d) | render columnchart
应获得如下图所示的结果:
查看生成的直方图。 将鼠标悬停在其中一个条形图上,以查看箱开始时间(x 值)和事件计数(y 值)。
使用 sum
运算符
在上一个查询中,你了解了一段时间内的风暴事件数。 现在,我们来看看这些风暴造成的损失。 为此,你将使用 sum
聚合函数,因为你希望查看每个时间间隔中造成的总损失。 正在使用的数据集有两个与损失相关的列:DamageProperty 和 DamageCrops。
在以下查询中,首先创建一个计算列,将这两个损失来源添加在一起。 然后,你将创建按周装箱的总损失的聚合。 最后,你将呈现柱形图,表示由所有风暴造成的每周损失。
运行以下查询:
StormEvents | extend damage = DamageProperty + DamageCrops | summarize sum(damage) by bin(StartTime, 7d) | render columnchart
应获得如下图所示的结果:
上一个查询将损失显示为时间函数。 比较损失的另一种方法是按事件类型比较。 运行以下查询,使用饼图比较由不同事件类型造成的损失。
StormEvents | extend damage = DamageProperty + DamageCrops | summarize sum(damage) by EventType | render piechart
应获得如下图所示的结果:
将鼠标悬停在饼图的某个切片上。 你应该会看到绝对值(由此事件类型造成的总损失)以及总体损失的相应百分比。