练习 - 使用 render 运算符可视化数据

已完成

我们已使用气象数据集来聚合和比较 2007 年美国各州中某些类型的风暴事件数量。 在这里,你将借助时间装箱图可视化这些结果。

使用 render 运算符

回顾一下,你已使用 summarize 运算符按通用字段(如“州/省/市/自治区”)对事件进行分组。 在上一单元中,你使用了不同版本的 count 运算符来按州/省/市/自治区比较事件的数量和类型。 可视化这些结果有助于跨州比较活动。

若要可视化结果,你将使用 render 运算符。 此运算符位于查询末尾。 在 render 运算符中,你将指定要使用的可视化效果类型,例如 columnchartbarchartpiechartscatterchartpivotchart 等。 还可以选择定义可视化效果的不同属性,例如 x 轴或 y 轴。

在此示例中,你将使用条形图可视化上一个查询。

  1. 运行以下查询。

    运行查询

    StormEvents
    | summarize count(),
        EventsWithDamageToCrops = countif(DamageCrops > 0),
        dcount(EventType) by State
    | sort by count_
    | render barchart
    

    应获得如下图所示的结果:

    Screenshot of query with bar chart results.

  2. 请注意条形图右侧的图例。 图例中的每个值都表示按查询中的“州/省/市/自治区”汇总的不同数据列。 尝试选择其中一个值(如 count_),以切换条形图中此数据的显示。 通过切换 count_,可以删除总计数并保留造成损失的事件数和不同事件数。 应获得如下图所示的图:

    Screenshot of column chart results with count_ field toggled off.

  3. 查看生成的条形图。 可以从中获取哪些见解? 例如,你可能会注意到德克萨斯州具有最多单个风暴事件,但爱荷华州具有破坏风暴事件的最高几率。

使用 bin() 函数对值进行分组

到目前为止,你已使用聚合函数按“州/省/市/自治区”对事件进行分组。 现在,我们通过按时间对数据进行分组来查看全年风暴的分布情况。 每个记录中的时间值都是开始时间和结束时间。 我们按周对事件开始时间进行分组,以便可以看到 2007 年每周发生的风暴数量。

你将使用将值分组为设置间隔的 bin() 函数。 例如,你可能有来自一年中每天的数据,并且你希望按周对这些日期进行分组。 或者,你希望按年龄箱对人口数据进行分组。此运算符的语法为:

bin(value,roundTo)

箱值可以是数字、日期或时间跨度。 你将使用 bin() 函数聚合计数,以便每周提供事件计数。 要分组的值是风暴事件的 StartTime,并将 roundTo 箱大小缩写为 7days 或 7d。 最后,将数据呈现为柱形图以创建直方图。

  1. 运行以下查询:

    运行查询

    StormEvents
    | summarize count() by bin(StartTime, 7d)
    | render columnchart
    

    应获得如下图所示的结果:

    Screenshot of binned results graph.

  2. 查看生成的直方图。 将鼠标悬停在其中一个条形图上,以查看箱开始时间(x 值)和事件计数(y 值)。

使用 sum 运算符

在上一个查询中,你了解了一段时间内的风暴事件数。 现在,我们来看看这些风暴造成的损失。 为此,你将使用 sum 聚合函数,因为你希望查看每个时间间隔中造成的总损失。 正在使用的数据集有两个与损失相关的列:DamageProperty 和 DamageCrops。

在以下查询中,首先创建一个计算列,将这两个损失来源添加在一起。 然后,你将创建按周装箱的总损失的聚合。 最后,你将呈现柱形图,表示由所有风暴造成的每周损失。

  1. 运行以下查询:

    运行查询

    StormEvents
    | extend damage = DamageProperty + DamageCrops
    | summarize sum(damage) by bin(StartTime, 7d)
    | render columnchart
    

    应获得如下图所示的结果:

    Screenshot of damage column chart binned by week.

  2. 上一个查询将损失显示为时间函数。 比较损失的另一种方法是按事件类型比较。 运行以下查询,使用饼图比较由不同事件类型造成的损失。

    运行查询

    StormEvents
    | extend damage = DamageProperty + DamageCrops
    | summarize sum(damage) by EventType
    | render piechart
    

    应获得如下图所示的结果:

    Screen shot of Kusto query with pie chart and results.

  3. 将鼠标悬停在饼图的某个切片上。 你应该会看到绝对值(由此事件类型造成的总损失)以及总体损失的相应百分比。