密度热力图

密度热力图密度热力图加背景

配置属性

图表容器

width

可选, number

功能描述: 设置图表宽度。

默认配置: 400

height

可选, number

功能描述: 设置图表高度。

默认配置: 400

forceFit

可选, boolean

功能描述: 图表是否自适应容器宽高。当 forceFit 设置为 true 时,widthheight 的设置将失效。

默认配置: true

pixelRatio

可选, number

功能描述: 设置图表渲染的像素比

默认配置: 2

renderer

可选, string

功能描述: 设置图表渲染方式为 canvassvg

默认配置: canvas

数据映射

data 📌

必选, array object

功能描述: 设置图表数据源

默认配置: 无

数据源为对象集合,例如:[{ time: '1991',value: 20 }, { time: '1992',value: 20 }]

meta

可选, object

功能描述: 全局化配置图表数据元信息,以字段为单位进行配置。在 meta 上的配置将同时影响所有组件的文本信息。

默认配置: 无

细分配置项名称 类型 功能描述
alias string 字段的别名
formatter function callback 方法,对该字段所有值进行格式化处理
values string[] 枚举该字段下所有值
range number[] 字段的数据映射区间,默认为[0,1]
const data = [
  { country: 'Asia', year: '1750', value: 502,},
  { country: 'Asia', year: '1800', value: 635,},
  { country: 'Europe', year: '1750', value: 163,},
  { country: 'Europe', year: '1800', value: 203,},
];

const areaPlot = new PercentageStackArea(document.getElementById('container'), {
  title: {
    visible: true,
    text: '百分比堆叠面积图',
  },
  data,
  meta: {    year: {      alias:'年份'      range: [0, 1],    },    value: {      alias: '数量',      formatter:(v)=>{return `${v}`}    }  },  xField: 'year',
  yField: 'value',
  stackField: 'country',
});
areaPlot.render();

xField 📌

必选, string

功能描述: heatmap 数据点在 x 方向位置映射对应的数据字段名,一般对应一个连续字段。

默认配置: 无

yField 📌

必选, string

功能描述: heatmap 数据点在 y 方向位置映射所对应的数据字段名,一般对应一个连续字段。

默认配置: 无

colorField

可选, string

功能描述: heatmap 数据点颜色映射对应的数据字段名。

图形样式

color

可选, string[]

功能描述: 指定 heatmap 渲染的色带颜色,数值中的值为色带节点的色值。。

默认配置:采用 theme 中的色板。

例如,下图的连续渐变色带是这样通过color配置项生成:

color: ['#295599', '#3e94c0', '#78c6d0', '#b4d9e4', '#fffef0', '#f9cdac', '#ec7d92', '#bc448c'];

radius ✨

可选, number

功能描述: 热力半径,决定一个原始数据点的大小,radius 设置的越大,在最终的渲染效果中,靠近的数据点就更容易”融化“在一起,形成区块。

默认配置: 自动计算

intensity ✨

可选, number

功能描述: 热力权重,决定一个原始数据点的对周边数据点的影响力

默认配置: 2

point

可选, object

功能描述: 显示数据点。

细分配置 类型 功能描述
visible boolean 是否显示数据点
shape string 数据点形状
size number 数据点大小
style object 数据点样式

注意:相对于具体的数值,热力图更加关注的是趋势和分布。因此不推荐在热力图上显示数据点,尤其当点密集时很难得到理想的视觉效果。

图表组件

title

可选, optional

DEMOS

功能描述: 配置图表的标题,默认显示在图表左上角。

默认配置:

visible: false,
alignTo: 'left',
text:'',
style:{
    fontSize: 18,
    fill: 'black',
}
细分配置 类型 功能描述
visible boolean 是否显示
alignTo string 位置,支持三种配置:
'left'
style object 样式:
- fontSize: number 文字大小
- fill: string 文字颜色
- stroke: string  描边颜色
- lineWidth: number 描边粗细
- lineDash: number 虚线描边
- opacity: number 透明度
- fillOpacity: number 填充透明度
- strokeOpacity: number 描边透明度

description

可选, optional

DEMOS

功能描述: 配置图表的描述,默认显示在图表左上角,标题下方。

默认配置:

visible: false,
alignTo: 'left',
text:'',
style:{
    fontSize: 12,
    fill: 'grey',
}
细分配置 类型 功能描述
visible boolean 是否显示
alignTo string 位置,支持三种配置:
'left'
style object 样式:
- fontSize: number 文字大小
- fill: string 文字颜色
- stroke: string  描边颜色
- lineWidth: number 描边粗细
- lineDash: number 虚线描边
- opacity: number 透明度
- fillOpacity: number 填充透明度
- strokeOpacity: number 描边透明度

xAxis

可选, object

功能描述: x 方向上的坐标轴,用于展示 xField 对应的映射信息

DEMOS

默认配置:

visible: true,
grid: {
    visible: false,
},
line: {
    visible: true,
},
tickLine: {
    visible: true,
},
label: {
    visible: true,
    autoRotate: true,
    autoHide: true
},
title: {
    visible: true,
    offset: 12,
},
细分配置 类型 功能描述
visible boolean 是否可见
tickCount number 坐标轴刻度数量
tickInterval number 坐标轴刻度间隔
line object 坐标轴轴线
- visible: boolean 是否可见
- style:object 轴线样式
grid object 网格线
- visible: boolean 是否可见
- line:object 网格线样式
label object 坐标轴标签
- visible: boolean 是否可见
- formatter: function  坐标轴标签格式化
- suffix: string 后缀
- precision:number  标签精度,如配置为 2,则格式化为 2 位小数
- mask: string 为日期文本添加格式化遮罩,当坐标轴 type 为 time 时生效
- offsetX: number 位置在 x 方向上的偏移量
- offsetY:number 位置在 y 方向上的偏移量
- style:object 样
-autoHide: boolean 是否自动隐藏
-autoRotate: boolean 是否自动旋转
tickLine object 坐标轴刻度
- visible:boolean 是否可见
- style: object 样式
title object 坐标轴标题
- visible: boolean 是否可见
- text: string 标题文字
- offset: number 位置偏移量
- style:object 样式

yAxis

可选, object

DEMOS

功能描述: y 方向上的坐标轴,用于展示 yField 对应的映射信息

默认配置:

visible: true,
grid: {
    visible: false,
},
line: {
    visible: true,
},
tickLine: {
    visible: true,
},
label: {
    visible: true,
},
title: {
    visible: true,
    offset: 12,
},
细分配置 类型 功能描述
visible boolean 是否可见
tickCount number 坐标轴刻度数量
tickInterval number 坐标轴刻度间隔
min number 设置坐标轴最小值
max number 设置坐标轴最大值
line object 坐标轴轴线
- visible: boolean 是否可见
- style:object 轴线样式
grid object 网格线
- visible: boolean 是否可见
- line:object 网格线样式
label object 坐标轴标签
- visible: boolean 是否可见
- formatter: function 坐标轴标签格式化 DEMO
- suffix: string 后缀
- precision:number  标签精度,如配置为 2,则格式化为 2 位小数
- offsetX: number 位置在 x 方向上的偏移量
- offsetY:number 位置在 y 方向上的偏移量
- style:object 样
-autoHide: boolean 是否自动隐藏
-autoRotate: boolean 是否自动旋转
tickLine object 坐标轴刻度
- visible:boolean 是否可见
- style: object 样式
title object 坐标轴标题
- visible: boolean 是否可见
- text: string 标题文字
- offset: number 位置偏移量
- style:object 样式

legend

可选, object

功能描述:图例,用于展示颜色分类信息

默认配置:

visible: true,
position: 'bottom',
flipPage: true
细分配置 类型 功能描述
visible boolean 是否可见
position string 位置,支持 12 方位布局
top-left, top-center,top-right
bottom-left,bottom-center,bottom-right
left-top,left-center,left-bottom
right-top,right-center,right-bottom
width number 图例宽度
height number 图例高度
text object 图例两端刻度值
- style: object 刻度值样式
- formatter: function 对刻度值进行格式化
gridStyle object 图例网格线样式
triggerOn string 图例响应交互的事件,默认为 click
legend:{
    visible: true,
    position:'right-center',
    width: 10,
    height: 50,
    text:{
        formatter:(v)=>{
            return parseFloat(v) / 100;
        },
        style:{
            fill:'grey',
            fontSize: 12
        }
    },
    gridStyle:{
        lineDash: [2,2]
    },
    triggerOn:'click'
}

tooltip

可选, object

功能描述:信息提示框

默认配置:

visible: true,
offset: 20,
showCrosshairs: true,
crosshairs: {
  type: 'xy'
}
细分属性 类型 功能描述
visible boolean 是否显示
offset number 距离鼠标位置偏移值
showCrosshairs boolean 是否显示辅助线
crosshairs object 配置 tooltip 辅助线。
-type: string crosshairs 类型,可选项: x
domStyles object 配置 tooltip 样式
- g2-tooltip: object 设置 tooltip 容器的 CSS 样式
- g2-tooltip-title: object 设置 tooltip 标题的 CSS 样式
- g2-tooltip-list: object 设置 tooltip 列表容器的 CSS 样式
- g2-tooltip-marker: object 设置 tooltip 列表容器中每一项 marker 的 CSS 样式
- g2-tooltip-value: object  设置 tooltip 列表容器中每一项 value 的 CSS 样式
fields string 设置 tooltip 内容字段,默认为[ xField, yField, colorField]
formatter object 对 tooltip items 进行格式化,入参为 tooltip fields 对应数值,出参为格式为{name:'a',value:1}

label

功能描述: 标签文本

默认配置:

visible: false
offsetX: 6
offsetY: 6
style:{
  fill: 'rgba(0, 0, 0, 0.65)',
  stroke: '#ffffff',
  lineWidth: 2,
}
细分配置 类型 功能描述
visible boolean 是否显示
formatter function 对文本标签内容进行格式化
offsetX number 在 label 位置的基础上再往 x 方向的偏移量
offsetY number 在 label 位置的基础上再往 y 方向的偏移量
style object 配置文本标签样式。

注意:相对于具体的数值,热力图更加关注的是趋势和分布。因此不推荐在热力图上显示标签,尤其当数据点密集时很难得到理想的视觉效果。

background ✨

可选object

DEMO

功能描述:配置热力图显示背景,支持颜色填充、图片及 callback 三种方式。

  • 颜色填充背景

指定 background type 为'color', 通过value配置项指定色值。

为热力图配置黑色填充背景:

background:{
    type:'color',
    value:'#000000'
}

效果:

  • 图片背景

指定 background type 为'image', 通过src配置项指定图片资源链接。

为热力图配置图片背景:

background:{
     type: 'image',
     src: 'https://gw.alipayobjects.com/mdn/rms_d314dd/afts/img/A*TU_aSrMV6KYAAAAAAAAAAABkARQnAQ',
}

效果:

  • callback

通过回调函数进行更加灵活的背景配置,例如在热力图下方叠加地图。

入参为:

x: number 热力图填充区域的 x 位置
y: number 热力图填充区域的 y 位置
width: number 热力图填充区域的宽度
height: number 热力图填充区域的高度
container: G.Group 热力图填充区域的绘图容器

事件

图形事件

onHeatmapClick
图形点击事件
onHeatmapDblClick
图形双击事件
onHeatmapDblClick
图形双击事件
onHeatmapMouseleave
图形鼠标离开事件
onHeatmapMousemove
图形标移动事件
onHeatmapMousedown
图形鼠标按下事件
onHeatmapMouseup
图形鼠标松开事件
onHeatmapMouseenter
图形鼠标进入事件

图表区域事件

onPlotClick
图表区域点击事件
onPlotDblClick
图表区域双击事件
onPlotDblClick
图表区域双击事件
onPlotMouseleave
图表区域鼠标离开事件
onPlotMousemove
图表区域鼠标移动事件
onPlotMousedown
图表区域鼠标按下事件
onPlotMouseup
图表区域鼠标松开事件
onPlotMouseenter
图表区域鼠标进入事件

图例事件

onLegendClick
图例点击事件
onLegendDblClick
图例双击事件
onLegendMouseenter
图例鼠标进入事件
onLegendMouseleave
图例鼠标离开事件
onLegendMousemove
图例鼠标移动事件
onLegendMousedown
图例鼠标按下事件
onLegendMouseup
图例鼠标松开事件
onLegendMouseenter
图例鼠标进入事件

图例标签事件

onLegendLabelClick
图例标签点击事件
onLegendLabelDblClick
图例标签双击事件
onLegendLabelDblClick
图例标签双击事件
onLegendLabelMouseleave
象限标签鼠标离开事件
onLegendLabelMousemove
图例标签鼠标移动事件
onLegendLabelMousedown
图例标签鼠标按下事件
onLegendLabelMouseup
图例标签鼠标松开事件
onLegendLabelMouseenter
图例标签鼠标进入事件

坐标轴事件

onAxisClick
坐标轴点击事件
onAxisDblClick
坐标轴双击事件
onAxisDblClick
坐标轴双击事件
onAxisMouseleave
坐标轴鼠标离开事件
onAxisMousemove
坐标轴鼠标移动事件
onAxisMousedown
坐标轴鼠标按下事件
onAxisMouseup
坐标轴鼠标松开事件
onAxiMouseenter
坐标轴鼠标进入事件

图形标签事件

onLabelClick
图形标签点击事件
onLabelDblClick
图形标签双击事件
onLabelDblClick
图形标签双击事件
onLabelMouseleave
图形标签鼠标离开事件
onLabelMousemove
图形标签鼠标移动事件
onLabelMousedown
图形标签鼠标按下事件
onLabelMouseup
图形标签鼠标松开事件
onLabelMouseenter
图形标签鼠标进入事件

标题事件

onTitleClick
标题点击事件
onTitleDblClick
标题双击事件
onTitleDblClick
标题双击事件
onTitleMouseleave
标题鼠标离开事件
onTitleMousemove
标题鼠标移动事件
onTitleMousedown
标题鼠标按下事件
onTitleMouseup
标题鼠标松开事件
onTitleMouseenter
标题鼠标进入事件

描述事件

onDescriptionClick
标题点击事件
onDescriptionDblClick
标题双击事件
onDescriptionDblClick
标题双击事件
onDescriptionMouseleave
标题鼠标离开事件
onDescriptionMousemove
标题鼠标移动事件
onDescriptionMousedown
标题鼠标按下事件
onDescriptionMouseup
标题鼠标松开事件
onDescriptionMouseenter
标题鼠标进入事件

图表方法

render() 📌

必选

渲染图表。

updateConfig()

可选

更新图表配置项。

plot.updateConfig({
  width: 500,
  height: 600,
  legend: {
    visible: false,
  },
});

plot.render();

changeData()

可选

更新图表数据。updateConfig()方法会导致图形区域销毁并重建,如果只进行数据更新,而不涉及其他配置项更新,推荐使用本方法。

plot.changeData(newData);

repaint()

可选

图表画布重绘。

destroy()

可选

销毁图表。

getData()

获取图表数据。

getPlotTheme()

获取图表 theme。

设计规范