本帖最后由 Eden.Sun 于 2025-12-31 16:04 编辑
今天介绍通过Wyn内置组件气泡图的自定义属性设置,实现 Echarts 热力图的效果。
实现步骤
1. 准备自定义属性设置代码
- // 获取最值
- var minValue = Number.MAX_VALUE;
- var maxValue = -Number.MAX_VALUE;
- var echartData = option.series[0].data;
- echartData.forEach(item => {
- // 最大值
- if(item.value[2] >= maxValue) {
- maxValue = item.value[2];
- }
-
- // 最小值
- if(item.value[2] <= minValue) {
- minValue = item.value[2];
- }
- });
- console.log("minValue = " + minValue);
- console.log("maxValue = " + maxValue);
- option.series[0].type = 'heatmap';
- option.visualMap = {
- min: minValue,
- max: maxValue,
- calculable: false,
- orient: 'vertical',
- left: 'right',
- top:'center',
- color: ['#A50026','#D73027','#F46D43','#FDAE61','#FEE090','#FFFFBF'],
- text: ['高', '低'],
- textStyle: { color: '#666', fontSize: 13 },
- outOfRange: {color:'#FFFFBF'},
- };
- console.log(option);
- // 横坐标内容纵向显示
- option.xAxis.axisLabel.formatter = function(value) {
- // 步骤1:遍历每个字符,给中文字符后加换行
- let result = '';
- for (let char of value) {
- // 判断是否为中文字符(Unicode 范围 \u4e00-\u9fa5)
- if (/[\u4e00-\u9fa5]/.test(char)) {
- result += char + '\n'; // 中文字符 + 换行
- } else {
- result += char; // 非中文字符直接拼接(如字母/数字)
- }
- }
- // 步骤2:去掉末尾最后一个多余的换行符
- return result.replace(/\n$/, '');
- };
- return option;
复制代码
2. 创建组件
创建气泡图组件,并绑定字段:
设置自定义属性代码:
3. 最终效果
附件是自定义属性的代码和仪表板设计案例,感兴趣的小伙伴可以下载使用。
|