echarts动态切换主题

本文介绍了如何在HTML页面中通过JavaScript下载并应用ApacheECharts库,展示了如何配置不同主题的ECharts图表,包括雷达图和柱状图,并实现选中主题时图表的动态切换。
摘要由CSDN通过智能技术生成

js下载链接:主题下载 - Apache ECharts

先导入js脚本,然后一一应用,其中jquery是必须要使用的,不然没有任何效果

代码末尾再配置好动态切换

完整代码如下

<!DOCTYPE html>
<html>
 
<head>
    <meta charset="utf-8">
    <!--引入ECharts脚本-->
    <script src="js/jquery-3.3.1.js"></script>
    <script src="js/echarts.js"></script>
    <script src="js/infographic.js"></script>
    <script src="js/dark.js"></script>
    <script src="js/macarons.js"></script>
    <script src="js/roma.js"></script>
    <script src="js/shine.js"></script>
    <script src="js/vintage.js"></script>
</head>
 
<body>
    <div id = "themeArea"><label>echarts主题切换:</label></div>
    <div>
        <select name = "you select thrme:"id = "selection">
            <option value = "dark">dark</option>
            <option value = "infographic">infographic</option>
            <option value = "macarons">macarons</option>
            <option value = "roma">roma</option>
            <option value = "shine">shine</option>
            <option value = "vintage">vintage</option>
        </select>
    <!---为ECharts准备一个具备大小(宽高)的DOM-->
    <div id="main1" style="width: 800px; height: 350px"></div>
    <div id="main2" style="width: 800px; height: 350px"></div>
    <script type="text/javascript">
        //基于准备好的DOM,初始化ECharts图表
        var myChart1 = echarts.init(document.getElementById("main1"));
        //指定图表的配置项和数据
        var waterMarkText = '柒';
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');
        canvas.width=canvas.height=100;
        ctx.textAlign='center';
        ctx.textBaseline='middle';
        ctx.globalAlpha=10;
        ctx.font = '20px Microsoft Yahei';
        ctx.translate(50,50);
        ctx.fillText(waterMarkText,0,0);
        var option1 = {
            backgroundColor:{type:'patten',image:canvas,repeat:'repeat'},
            title: {
                text: '王者荣耀英雄数值',
            },
            legend: {
                data: ['生命','物理', '法强','物抗','法抗','移速'],
                type:'scroll',               
                width:'20%'
            },
            //鼠标移动到指定位置显示数据
            tooltip: {
                confine:true,
                enterable:true,
            },
            toolbox: {
                show: true,
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true },
                },
            },
            calculable: true,
        	radar:{        
        			indicator:[
        				{name:'法力值',max:370},
        				{name:'物理',max:370},
        				{name:'法强',max:370},
        				{name:'物抗',max:370},
        				{name:'法抗',max:370},
                        {name:'移速',max:370},
        			],
        		},
        	
            series: [
                {
                    center:['10%,55%'],
               		name:'radarpanel',
               		type:'radar',
               		//鼠标移动到指定位置显该组数据高亮显示
               		itemStyle:{
               			normal:{lineStyle:{width:1},opacity:0.2},
               			emphasis:{lineStyle:{width:5},opacity:1}
               		},
               		data:[
            	   		{
            	   		name:'司空震',
            	   		value:[30,170,166,85,50,370], 
            	   		label:{
            	   			show:true
            	   		}
               		},
                       {
            	   		name:'狂铁',
            	   		value:[90,166,80,95,50,380], 
            	   		label:{
            	   			show:true
            	   		}
               		},
                       {
            	   		name:'夏洛特',
            	   		value:[50,150,100,101,50,390], 
            	   		label:{
            	   			show:true
            	   		}
               		},
               
               ]
                }               
            
            ]
        };
 
        //使用刚指定的配置项和数据显示图表
        myChart1.setOption(option1);
        var myChart2 = echarts.init(document.getElementById("main2"));
        var option2 = {
            backgroundColor:{type:'patten',image:canvas,repeat:'repeat'},
            legend: {
                data: ['生命','物理', '法强','物抗','法抗','出场率'],
                type:'scroll',               
                width:'20%'
            },
            //鼠标移动到指定位置显示数据
            tooltip: {
                confine:true,
                enterable:true,
            },
            toolbox: {
                show: true,
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true },
                },
            },
            calculable: true,
            
            xAxis: [{
            		type: 'category',
 
                	data: ['生命','物理', '法强','物抗','法抗','移速']
 
            		},
 				],
            	yAxis: [{
                	type: 'value'
 
            	},
 					],
            	series: [
                  
            		{          
 					name:'司空震',
 					type:'bar',
 					
                	data: [30,170,166,85,50,370]
            		},
            		{
            		name:'狂铁',
            		type:'bar',
            		
            		data:[90,166,80,95,50,380]
            		},
                    {          
 					name:'夏洛特',
 					type:'bar',
 					
                	data: [50,150,100,101,50,390]
            		},
                    
            	]
        }
        myChart2.setOption(option2);
        // myChart1.group='group1';
        // myChart2.group='group2';
        // echarts.connect('group1');
        $('#selection').change(function(){
        echarts.connect([myChart1,myChart2]);
        myChart2.dispose();
        let yourtheme = $(this).val();
        myChart2 = echarts.init(document.getElementById('main2'),yourtheme);
        myChart2.setOption(option2)
        myChart2.resize();
        })
    </script>
</body>
 
</html>

效果如下

### 回答1: ECharts是一个非常强大的图表库,它可以用来创建各种类型的图表,并且能够支持多种数据格式,使得我们可以实现多种业务场景下的数据展示需求。如果需要在一个页面上展示多个动态图,我们可以采用以下步骤: 1.确定展示需求 首先要确定页面需要展示的动态图数量和类型,以及这些图表之间的交互关系。比如,我们可以展示多个数值类的图表,并且这些图表应该能够根据相同的筛选条件进行联动,以便用户能够更加直观地分析数据。 2.数据准备 为了展示多个动态图,我们需要准备多个数据源。这些数据源可以是不同的数据文件,也可以是同一份数据文件中的不同数据表。数据源需要按照相应的数据格式进行处理,并且要考虑到图表之间的数据关联和实时更新需求。 3.创建图表实例 使用ECharts库中的API创建多个图表实例,并对每个实例进行相应的配置,包括数据源、样式、交互等。每个图表实例应该在一个独立的div容器中进行展示,以便进行后续的样式调整和交互设计。 4.交互设计 对于展示多个图表的页面,交互设计尤为重要。我们可以通过添加筛选条件、图表联动、时间轴等交互控件,使得用户能够快速地切换不同的数据视图、对比不同的数据指标、发现数据变化趋势等。 5.实时更新 如果页面需要实时更新动态图表,我们需要对数据进行定时刷新,并且要考虑到多个图表之间的数据同步问题。ECharts库本身就支持数据更新和联动功能,可以通过调用相关API实现实时更新需求。 总之,展示多个动态图表需要综合考虑数据源、图表交互、实时更新等多个因素,但是使用ECharts库可以非常方便地实现这一需求。 ### 回答2: 在echarts中,实现一个页面展示多个动态图非常简单。我们可以根据需求创建多个图表实例,并对每个实例进行单独的配置。 首先,我们需要在页面中引入echarts库,并创建多个DOM节点用于承载不同的图表。然后,根据每个图表的类型和数据属性,使用echarts提供的API对每个图表进行单独的配置和绑定到DOM节点上。 在数据更新时,我们只需要根据更新的数据,对每个图表实例调用相应的API进行重新渲染即可。 需要注意的是,为了避免页面过于复杂,我们应该合理选择每个图表应该展示的数据,并对数据进行过滤和处理,同时也需要对图表的样式进行统一调整,以增强页面整体的美观性。 总之,echarts可以轻松实现一个页面展示多个动态图,只需根据需求创建多个图表实例并对其进行单独的配置、绑定、数据更新即可。 ### 回答3: 要在一个页面中展示多个动态图,可以使用ECharts的多个实例。针对每个图表,可以使用不同的实例ID和参数传入不同的数据源。可以使用JavaScript动态更新这些图表,并为每个实例设置不同的主题、视觉效果和动画效果。此外,可以使用ECharts的数据联动功能,使得不同的图表之间可以响应彼此的交互操作,同时还可以使用ECharts的事件机制来监听用户的操作并做出相应的操作。建议将各个图表划分在不同的区域或者面板中,以便于用户更好地观察和理解各个图表之间的关系和变化。为了提高用户的使用体验,建议优化图表的渲染性能,确保在多个图表同时更新时,不会出现卡顿或者显示异常的情况。最后,需要注意的是,在一个页面中展示多个动态图需要考虑到页面的美观性和易用性,需要根据实际情况进行布局和排版,以确保用户可以方便地查看和使用各个图表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值