彩票走势图

JavaScript图表工具FusionCharts入门教程(40):如何创建Heat Map图表

原创|行业资讯|编辑:杨鹏连|2020-12-02 10:26:38.783|阅读 276 次

概述:热图图是一种专用图,它使用颜色表示表中的数据值。当您需要绘制大型和复杂数据时,您会发现它最有用。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

FusionCharts Suite XT是全面的跨平台、跨浏览器JavaScript图表套包,其中包括FusionCharts XTPowerCharts XT 、FusionWidgets XTFusionMaps XT。支持 ASP、 ASP.NET、 PHP、 JSP、 ColdFusion、 Ruby on Rails、 JavaScript、甚至简单的HTML页面。它是你值得信赖的JavaScript图表解决方案,目前在全球有45万用户选择Fusioncharts来制作专业的JavaScript图表。

点击下载FusionCharts最新版

热图图是一种专用图,它使用颜色表示表中的数据值。当您需要绘制大型和复杂数据时,您会发现它最有用。

热图图表的基础

您可以使用热图来绘制数据,例如员工出勤记录,周期表,跟踪股市投资,比较不同公司的业绩等。您可以为不同级别的数据设置不同的颜色。例如,如果使用热图图表绘制员工出勤记录,则可以使用百分比百分比值来表示红色,黄色,蓝色和绿色(例如,红色,黄色,蓝色和绿色),分别表示不良,平均,良好和优良等级。绘制图表后,您将可以轻松地区分四个等级。

热图图表特点

使用热图图表,您可以:

  • 以表格格式排列数据,其中包含有限数量的行和列。
  • 绘制数字或非数字数据,或同时绘制两者。
  • 使用纯色或渐变表示数据值内的不同范围。
  • 使用交互式图例显示或隐藏数据图。
  • 隐藏任何超出定义的颜色范围限制的数据。
  • 使用两种不同类型的图例-图标图例和渐变图例。
热图图表类型

使用FusionCharts Suite XT,您可以构建两种类型的热图图表。使用数字热图来绘制数字数据,使用基于类别的热图来绘制非数字数据。这些图表如下图所示:

数字热图图表

基于类别的热图图表

在热图图表传奇

如前所述,您可以在热图图表中使用两种不同类型的图例:
梯度传说

渐变传奇
图标图例
图标传奇
创建数字热图图表

  • 使用以下属性创建简单的数字热图图表:
  • 使用rowID属性指定必须在其中输入数据的行的唯一ID 。
  • 使用columnID属性指定必须在其中输入数据的列的唯一ID 。
  • 使用value属性指定要在单元格中输入的数据值。
  • 指定在所述数据图的左上,右上,左下,以及右下的角将被显示的标签,使用tlLabel,trLabel,blLabel,和brLabel,分别属性。
  • 使用code属性,为代表特定范围的颜色指定十六进制代码。
  • 使用minValue属性指定可以在图表上绘制的最小值。
  • 使用maxValue属性指定可以在图表上绘制的最大值。
使用以下数据来构建图表:

使用以下数据对不良,平均或良好评级进行分类:

该图表如下图所示:

定义的行和列的顺序

在上面给出的图表中,您可以看到该图表会根据为数据对象定义行和列的顺序自动确定行和列的顺序。因此,图表显示Samsung Galaxy S5在第一行,HTC One (M8)第二行,依此类推。

但是,还有另一种方法可以绘制基于数字的热图图表,您可以在其中预定义行和列的顺序。完成此操作后,您可以通过数据对象以任何顺序提供数据。图表将按照您预先定义的顺序显示它们。

使用以下属性预定义行和列的顺序:

  • 使用id属性为数据项定义唯一ID 。
  • 使用label属性为数据项定义标签。
注意:row定义行条目时,将上述属性与对象一起使用,定义列条目时,将上述属性与对象一起使用column。
请参考下面的代码:
{
    "chart": {
        ...
    },
    "rows": {
        "row": [{
            "id": "IPHONES5",
            "label": "Apple iPhone 5S"
        },
        {
            "id": "SGS5",
            "label": "Samsung Galaxy S5"
        },
        {
            "id": "HTC1M8",
            "label": "HTC One (M8)"
        },
        {
            "id": "LUMIA",
            "label": "Nokia Lumia 1520"
        }]
    },
    "columns": {
        "column": [{
            "id": "price",
            "label": "Price"
        },
        {
            "id": "processor",
            "label": "Processor"
        },
        {
            "id": "screen",
            "label": "Screen Size"
        },
        {
            "id": "backup",
            "label": "Battery Backup"
        },
        {
            "id": "cam",
            "label": "Camera"
        }]
    },
    "dataset": [{
        "data": [{
            ...
        }]
    }]
}
该图表如下图所示:

配置颜色单个细胞

使用color带有属性的data对象,指定将应用于单元格的颜色的十六进制代码。
请参考下面的代码:

{
    "chart": {
        ...
    },
    "rows": {
        "row": [{
            ...
        }]
    },
    "columns": {
        "column": [{
            ...
        }]
    },
    "dataset": [{
        "data": [{
            "rowid": "IPHONES5",
            "columnid": "processor",
            "value": "9.1",
            "tlLabel": "Dual Core",
            "trLabel": "OS : iOS 7",
            "color": "#d45faa"
        },
        {
            "rowid": "SGS5",
            "columnid": "processor",
            "value": "8.7",
            "tlLabel": "Quad Core 2.5 GHz",
            "trLabel": "OS : Android 4.4 Kitkat",
            "color": "#ff9f55"
        }]
    }]
}
该图表如下图所示:

在以上数据中,该color属性存在于两个数据元素中,并为图表的前两个单元格应用了不同的颜色。这两种颜色与colorRange元素中定义的颜色不同。您还可以使用alpha带有data对象的属性来控制单元格的透明度。

创建基于类别的热图图表

您可以通过定义几个颜色类别或范围来进行基于类别的映射,并为单元格设置特定的颜色类别。您无需将数字值映射到值范围。而是使用颜色范围来映射具有颜色类别的单元格。

使用以下属性创建基于类别的热图图表:

  • 将mapByCateory属性的值设置为1,以创建基于类别的热图。
  • 使用id带有row(或column)对象的属性,指定必须在其中输入数据的行(或列)的唯一ID 。
  • 指定的标签将被渲染为行,列,和图例,使用label属性与row,column,和color分别对象。请注意,如果您没有为数字范围指定标签,则图表将显示范围而不是标签。
  • 使用rowID属性指定必须在其中输入数据的行的唯一ID 。
  • 使用columnID属性指定必须在其中输入数据的列的唯一ID 。
  • 使用value属性指定要在单元格中输入的数据值。
  • 指定在所述数据图的左上,右上,左下,以及右下的角将被显示的标签,使用tlLabel,trLabel,blLabel,和brLabel,分别属性。
  • 使用code属性,为代表特定范围的颜色指定十六进制代码。
  • 使用minValue属性指定可以在图表上绘制的最小值。
  • 使用maxValue属性指定可以在图表上绘制的最大值。
请参考下面的代码:
{
    "chart": {
        ...
    },
    "rows": {
        "row": [{
            "id": "NY",
            "label": "New York"
        },
        {
            "id": "LA",
            "label": "Los Angeles"
        },
        {
            ...
        }]
    },
    "columns": {
        "column": [{
            "id": "wI",
            "label": "Winter"
        },
        {
            "id": "SU",
            "label": "Summer"
        },
        {
            ...
        }]
    },
    "dataset": [{
        "data": [{
            "rowid": "LA",
            "columnid": "WI",
            "value": "60.10",
            "colorRangeLabel": "Warm"
        },
        {
            "rowid": "LA",
            "columnid": "SP",
            "displayValue": "64.5",
            "colorRangeLabel": "Warm"
        },
        {
            ...
        }]
    }],
    "colorRange": {
        "gradient": "0",
        "color": [{
            ...
        }]
    }
}
该图表如下图所示:

在上面给出的基于类别的热图图表中,您可以看到美国前四个城市各个季节的平均温度。请注意,您只能为特定类别定义一种颜色。设置为该类别的任何数据将以为该特定组指定的颜色显示。您不能在基于类别的热图图中使用渐变颜色。

图例选项

您可以在使用FusionCharts Suite XT构建的热图图表中创建两种类型的图例-图标图例和渐变图例。

创建一个图标示例

使用图标图例,可以显示数字范围的单色图标。默认情况下,热图图表将带有图标图例。
使用以下属性为图例中的每个图标指定颜色:

  • 使用code属性,指定表示图例中特定颜色范围的颜色的十六进制代码。请注意,可以将此属性与colorRange或color对象一起使用。在中colorRange,将gradient属性设置为1(渐变图例)时,需要使用下的code属性colorRange同时指定minValue和color对象的颜色。另一方面,将gradientattribute的值设置为0(图标图例)时,需要使用该color对象来呈现图表。
  • 使用minValue属性指定每个数值范围的下限。color每当使用图标图例时,都必须在每个对象下提及此属性。
  • 使用maxValue属性指定每个数值范围的上限。color每当使用渐变或图标图例时,都必须在每个对象下提及此属性。
请参考下面的代码:
{
    "chart": {
        ...
    },
    "dataset": [{
        "data": [{
            ...
        }]
    }],
    "colorrange": {
        ...
        "color": [{
            "code": "E24B1A",
            "minvalue": "1",
            "maxvalue": "5",
            "label": "Bad"
        }, {
            "code": "F6BC33",
            "minvalue": "5",
            "maxvalue": "8.5",
            "label": "Average"
        }, {
            "code": "6DA81E",
            "minvalue": "8.5",
            "maxvalue": "10",
            "label": "Good"
        }]
    }
}
图标图例使用交互

图标图例是交互式的。您可以单击图例项以显示或隐藏以图例项表示的颜色范围映射的所有单元格。隐藏所有“平均”评级的热图图表看起来如下图所示:

创建渐变图例

渐变图例是从colorRange定义派生的混合颜色窗格,其特征是使用两个可拖动的指针绘制线性比例。您为数字范围定义的每种颜色都将与下一个颜色混合,从而形成渐变条。渐变比例尺上的每个点都代表唯一的颜色和值。因此,图表中所有不同的值都按照渐变标度上的位置以唯一的颜色显示。
使用以下属性来配置渐变图例:

  • 通过将gradient属性的值设置为,指定是否为图表呈现渐变图例1。
  • 使用startLabel属性指定渐变图例下限的标签。
  • 使用endLabel属性指定渐变图例上限的标签。
  • 使用code属性,指定表示图例中特定颜色范围的颜色的十六进制代码。请注意,可以将此属性与colorRange或color对象一起使用。在中colorRange,将gradient属性设置为1(渐变图例)时,需要使用下的code属性colorRange同时指定minValue和color对象的颜色。
请参考下面的代码:
{
    "chart": {
        ...
    },

    "dataset": [{
        "data": [{
            ...
        }]
    }],
    "colorRange": {
        "gradient": "1",
        "minValue": "0",
        "code": "#e24b1a",
        "startLabel": "Poor",
        "endLabel": "Good",
        "color": [{
            "code": "#e24b1a",
            "minValue": "1",
            "maxValue": "5",
            "label": "Bad"
        }, {
            "code": "#f6bc33",
            "minValue": "5",
            "maxValue": "7",
            "label": "Average"
        }, {
            "code": "#6da81e",
            "minValue": "7",
            "maxValue": "10",
            "label": "Good"
        }]
    }
}
该图表如下图所示:
配置的单色梯度图例

默认情况下,使用多种不同的颜色渲染渐变图例。但是,您也可以使用相同颜色的阴影渲染渐变图例。为此,请使用对象code下的属性设置单色的十六进制代码colorRange。
请参考下面的代码:

{
    "chart": {
        ...
    },
    "rows": {
        "row": [{
            ...
        }]
    },
    "columns": {
        "column": [{
            ...
        }]
    },
    "dataset": [{
        "data": [{
            ...
        }]
    }],
    "colorRange": {
        "gradient": "1",
        "minValue": "0",
        "code": "#2a7faa",
        "startLabel": "Not satisfied",
        "endLabel": "Love it!"
    }
}
该图表如下图所示:
梯度图例使用交互

显示/隐藏数据值

使用渐变图例,可以过滤特定值范围内的单元格。要指定图表上应显示的范围,请在两个或多个刻度指针中的任意一个或两个上单击并按住鼠标,然后将其拖动以设置所需的下限和上限。图表将仅显示位于该范围内的那些数据图,同时隐藏其余数字。

配置标签和工具提示

使用FusionCharts XT,可以配置标签和工具提示的功能属性。

配置标签

在热图图中,可以为同一数据图在不同位置显示多个标签。例如,您可以在数据图的中心和四个角显示标签。使用以下属性来配置标签:

  • 使用该value属性在数据图的中心显示一个数值。如果使用此属性,则所有数字格式设置功能都将适用。
  • 使用displayValue属性在数据图的中心显示任何数字或字符串值。value如果您在代码中同时使用该属性,则该属性将覆盖该属性。请注意,数字格式设置功能不适用于此属性的值。
  • 使用tlLabel属性在数据图的左上角显示标签。
  • 使用trLabel属性在数据图的右上角显示标签。
  • 使用blLabel属性在数据图的左下角显示标签。
  • 使用brLabel属性在数据图的右下角显示标签。
请参考下面的代码:
{
    "chart": {
        ...
    },
    "rows": {
        "row": [{
            ...
        }]
    },
    "columns": {
        "column": [{
            ...
        }]
    },
    "dataset": [{
        "data": [{
            "rowid": "SGS5",
            "columnid": "processor",
            "value": "8.7",
            "tlLabel": "Quad Core 2.5 GHz"
        },
        {
            ...
        }]
    }],
    "colorrange": {
        ...
        "color": [{
            ...
        }]
    }
}
配置工具提示

缺省情况下,热图图表通过包括分配给所述值的值配置工具提示,displayValue,trLabel,tlLabel,brLabel,blLabel,tlType,trType,blType,和brType属性。但是,在FusionCharts Suite XT中,您可以使用plotToolText属性指定将在工具提示中显示的自定义文本。

请参考下面的代码:

{
    "chart": {
        "toolTipColor": "#ffffff",
        "toolTipBorderThickness": "0",
        "toolTipBgColor": "#000000",
        "toolTipBgAlpha": "80",
        "toolTipBorderRadius": "2",
        "toolTipPadding": "5",
    },
    "rows": {
        "row": [{
            ...
        }]
    },
    "columns": {
        "column": [{
            ...
        }]
    },
    "dataset": [{
        "data": [{
            "rowid": "SGS5",
            "columnid": "processor",
            "value": "8.7",
            "tllabel": "Quad Core 2.5 GHz",
            "trlabel": "OS : Android 4.4 Kitkat"
        }, {
            ...
        }]
    }],
    "colorrange": {
        ...
        "color": [{
            ...
        }]
    }
}
该图表如下图所示:
处理外的范围内的数据

如果数据值超出您在colorRange对象中定义的数字范围;图表显示空白数据图。针对超出范围的数据绘制了带有空白数据图的图表,如下所示:
请参考下面的代码:

{
    "chart": {
        ...
    },
    "rows": {
        "row": [{
            ...
        }]
    },
    "columns": {
        "column": [{
            ...
        }]
    },
    "dataset": [{
        "data": [{
            ...
        }]
    }],
    "colorRange": {
        "gradient": "1",
        "minValue": "0",
        "code": "#2a7faa",
        "startLabel": "Not satisfied",
        "endLabel": "Love it!"
    }
}
为避免出现这种空白数据图,可以为热图图表启用百分比映射。

地图按百分比数据

使用百分比映射,可以按百分比显示数据值。将mapByPercent属性的值设置为1,以为热图图表启用百分比映射。
请参考下面的代码:

{
    "chart": {
        ...
    },
    "rows": {
        "row": [{
            ...
        }]
    },
    "columns": {
        "column": [{
            ...
        }]
    },
    "dataset": [{
        "data": [{
            "rowid": "JA",
            "columnid": "EN",
            "value": "3.7"
        }, {
            ...
        }]
    }],
    "colorRange": {
        ...
    }
}
该图表如下图所示:

使用百分比映射时,JSON数据中的最低数据值被视为下限,并显示为0%。另一方面,最高数据值被视为上限,并显示为100%。另外,您需要创建颜色范围,下限为0,上限为100。即使所有数据值都在定义的范围内,也可以启用百分比映射。

在基于类别的热图图表中,如果colorRangeLabel通过data元素提供的属性(未在colorRange元素中定义)提供类别名称,则图表将显示空白数据图。


想要购买FusionCharts Suite XT正版授权,或了解更多产品信息请点击


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
FusionCharts Suite XT

全面的跨平台、跨浏览器JavaScript图表解决方案套包,拥有100+图表和2000+地图

FusionCharts XT

50万用户首选的跨平台、跨浏览器的JavaScript/HTML图表解决方案

FusionWidgets XT

FusionWidgets XT操作简单,提供各种实时图表、金融图表、支持图表自动更新

PowerCharts XT

适用于专业领域的高级图表控件

FusionMaps XT

功能强大的JavaScript (HTML5)地图工具,可以根据内容、地区来展现及描绘地理数据或者其它实体。

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP