Echarts图表自定义切换明亮暗黑风格

2024-08-20 20:36

本文主要是介绍Echarts图表自定义切换明亮暗黑风格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先引入useDark来获取当前的风格状态

根据isDark的值来改变主题chartTheme的值,watch和computed都可以

import { useDark } from '@vueuse/core'const isDark = useDark()
// const chartTheme = computed(() => {
//   return isDark.value ? 'dark' : 'light'
// })
// console.log(chartTheme.value, 'chartTheme')
const chartTheme = ref('light')
watch(() => isDark.value,(newVal: any) => {chartTheme.value = newVal ? 'dark' : 'light'leftChartguawang()}
)

这里以饼图为例

记得给canvas宽度和高度这里用的class样式,自己补全

<div id="leftChartguawang" class="chartvh"></div>

 在主题chartTheme值改变时发现图表并没有重新绘制,所以先销毁之前的实例再重新绘制

const chartBoxleftChartguawang = ref()
const leftChartguawang = () => {if (chartBoxleftChartguawang.value) {chartBoxleftChartguawang.value.dispose() // 销毁当前实例}// document.getElementById('leftChartguawang')?.removeAttribute('_echarts_instance_')chartBoxleftChartguawang.value = echarts.init(document.getElementById('leftChartguawang'),isDark.value ? 'dark' : 'light')let datas: any = []datas.push(left_echart_obj.netAreaList)const option = {title: {text: `挂网总面积\n \n${left_echart_obj.netArea}(万㎡)`,left: 'center',top: '40%',textStyle: {color: '#999',fontWeight: 'normal',fontSize: 14}},series: datas.map(function (data: any, idx: any) {var top = idx * 50return {type: 'pie',radius: [50, 60],top: top + '%',height: '100%',left: 'center',width: 400,itemStyle: {borderColor: '#fff',borderWidth: 1},label: {alignTo: 'edge',formatter: '{name|{b}}\n{time|{c} %}',minMargin: 5,edgeDistance: 10,lineHeight: 15,rich: {time: {fontSize: 10,color: '#999'}}},labelLine: {length: 15,length2: 0,maxSurfaceAngle: 80},labelLayout: function (params: any) {const isLeft = params.labelRect.x < chartBoxleftChartguawang.value.getWidth() / 2const points = params.labelLinePointspoints[2][0] = isLeft ? params.labelRect.x : params.labelRect.x + params.labelRect.widthreturn {labelLinePoints: points}},data: data}})}option && chartBoxleftChartguawang.value.setOption(option)window.addEventListener('resize', function () {chartBoxleftChartguawang.value.resize()})
}

下面是一些,如何让Echarts重绘的方法

1. 使用setOption()方法

// 假设已经有一个ECharts实例chart  
var newOption = {  // 新的配置项  // ...  
};  
chart.setOption(newOption, true); // 第二个参数为true时,表示不合并之前的option,而是完全使用新的option

2. 使用clear()方法

// 假设已经有一个ECharts实例chart  
chart.clear(); // 清空图表  
// 随后可以调用setOption()方法重新绘制图表  
chart.setOption(option);

3. 使用dispose()方法

// 假设已经有一个ECharts实例chart  
chart.dispose(); // 销毁图表实例  
// 重新初始化ECharts实例  
var newChart = echarts.init(document.getElementById('chart'));  
// 使用新的配置项重新绘制图表  
newChart.setOption(option);

4. 移除实例属性(特定场景)

// 移除容器上的ECharts实例属性  
document.getElementById('myChart').removeAttribute('_echarts_instance_');  
// 重新初始化ECharts实例  
var chart = echarts.init(document.getElementById('myChart'));  
// 使用新的配置项重新绘制图表  
chart.setOption(option);

这篇关于Echarts图表自定义切换明亮暗黑风格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091110

相关文章

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接

C#图表开发之Chart详解

《C#图表开发之Chart详解》C#中的Chart控件用于开发图表功能,具有Series和ChartArea两个重要属性,Series属性是SeriesCollection类型,包含多个Series对... 目录OverviChina编程ewSeries类总结OverviewC#中,开发图表功能的控件是Char

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。