echarts自定义饼图数据刷新和颜色渲染问题浅析

作者:兔子先森 时间:2024-04-29 13:21:15 

在使用echarts的自定义饼图Customized Pie时,定义的动态数据会发生颜色无法渲染的问题,如下图所示:

echarts自定义饼图数据刷新和颜色渲染问题浅析

该图表的颜色是根据itemStyle内的color属性而来,如下:

itemStyle: {
    color: '#4d90fe',  /* 图表的颜色 */
    shadowBlur: 200,
    shadowColor: 'rgba(0, 0, 0, 0.5)'
}

动态渲染图表的数据,也就是更改option里的数据,使用myChart.setOption(option);即可动态渲染图表,但这个时候发现,部分图表的颜色是白色的,而且出现白色的区域是不固定的,这是因为设置了visualMap,该属性就是用来约束视觉表现,通过data的数据来进行视觉约束,具体数据如下:

// 图表数据
const data = reactive([
   { value: 486, name: '湖北' },
   { value: 438, name: '湖南' },
   { value: 574, name: '浙江' },
   { value: 732, name: '广东' },
   { value: 651, name: '上海' },
   { value: 759, name: '北京' }
])
// echarts的option属性
visualMap: {
    show: false,   // 是否显示色轮
    min: 80,  // 最小值
    max: 600,  // 最大值
    inRange: {  
       colorLightness: [0, 1]  // 物体的亮度范围
    }
}

visualMapmin参数代表最低的value值,max代表最高value值,上面的数据中,value最高的达到了759,超过了visualMapmax范围,所以会被设置为colorLightness亮度的最大值1,当一个物体的最大亮度到达了1,那么它就会默认变为白色。

到这里我们可以有两种方法修改上述的白色区块问题:

1、修改minmax的取值范围

2、修改colorLightness的最大亮度值

修改min和max的取值范围

min: 0,  // 最小值
max: 1000,  // 最大值

echarts自定义饼图数据刷新和颜色渲染问题浅析

修改colorLightness的最大亮度值

colorLightness: [0, 0.8]  // 物体的亮度范围

echarts自定义饼图数据刷新和颜色渲染问题浅析

建议修改最大取值范围minmax,我们只取最大范围内的值即可。如果仅仅修改最大亮度,那么超出的最大范围的值它们的颜色就会是一样的。

一些报错问题和优化的解决

echarts自定义饼图数据刷新和颜色渲染问题浅析

这种报错是因为echarts已经初始化了,未卸载实例又进行了一次初始化就会报该错误,这种只需要实例化一次的,把初始化echarts定义为全局变量,放到onMounted里只实例化一次,全局调用即可。也可以使用echarts.init(domNode.value).dispose()销毁和myChart.clear()清除实例。

来源:https://segmentfault.com/a/1190000043743095

标签:echarts,自定义,饼图
0
投稿

猜你喜欢

  • python不等于运算符的具体使用

    2022-03-29 11:21:21
  • Django使用unittest模块进行单元测试过程解析

    2021-04-03 13:09:08
  • layui table 获取分页 limit的方法

    2023-08-24 13:44:56
  • mysql5.5.28安装教程 超详细!

    2024-01-15 16:02:05
  • SQL Server查询速度慢原因及优化方法

    2008-12-03 15:19:00
  • 安装MSDE2000提示为了安全起见,要求使用强 SA 密码的解决方法

    2024-01-14 08:49:09
  • Pycharm在指定目录下生成文件和删除文件的实现

    2022-04-12 20:00:28
  • MySQL安全大讲堂:MySQL数据库安全配置

    2009-10-18 11:24:00
  • Go语言库系列之flag的具体使用

    2024-04-26 17:19:37
  • Python使用PyCrypto实现AES加密功能示例

    2022-09-18 13:23:57
  • Oracle数据库的备份及恢复策略研究

    2010-07-16 12:54:00
  • 使用matplotlib库实现图形局部数据放大显示的实践

    2021-01-13 18:47:13
  • 貌似很强的mysql备份策略分享

    2024-01-27 18:37:03
  • 浅谈python标准库--functools.partial

    2023-01-03 20:08:36
  • python -v 报错问题的解决方法

    2022-04-03 03:07:29
  • Python OpenCV 图像区域轮廓标记(框选各种小纸条)

    2023-12-18 05:42:08
  • Go语言异常处理案例解析

    2024-02-04 07:26:02
  • Python如何一行输入多个数,并存入列表

    2023-09-27 19:14:56
  • python字典排序的方法

    2021-06-16 03:43:40
  • mysql 8.0.17 安装配置图文教程

    2024-01-14 11:44:16
  • asp之家 网络编程 m.aspxhome.com