Echarts2.2 和 4 版本更换主题

2.2版本更换主题,我没能成功使用myChart.setTheme()这个方法,我找了很多,只有下面这一种方法可以

把这个目录下的主题文件拷贝到build\dist\theme下,没有theme文件夹,新建一个就行

然后在代码里这样写

<script type="text/javascript">
        // 路径配置
        require.config({
            paths: {
                echarts: './echarts-2.2.7/build/dist'
            }
        });

         require(
            [
                'echarts',
                'echarts/theme/dark',//加载主题
                'echarts/chart/line',   // 按需加载所需图表,如需动态类型切换功能,别忘了同时加载相应图表
                'echarts/chart/bar',   // 按需加载所需图表,如需动态类型切换功能,别忘了同时加载相应图表
                'echarts/chart/pie'
            ],	
            function (ec,theme) {//把主题给传进来
                var myChart = ec.init(document.getElementById('main'),theme);//设置主题
                var option = {
    title : {
        text: '南丁格尔玫瑰图',
        subtext: '纯属虚构',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        x : 'center',
        y : 'bottom',
        data:['rose1','rose2','rose3','rose4','rose5','rose6','rose7','rose8']
    },
    toolbox: {
        show : true,
        feature : {
            mark : {show: true},
            dataView : {show: true, readOnly: false},
            magicType : {
                show: true, 
                type: ['pie', 'funnel']
            },
            restore : {show: true},
            saveAsImage : {show: true}
        }
    },
    calculable : true,
    series : [
        {
            name:'半径模式',
            type:'pie',
            radius : [20, 110],
            center : ['25%', 200],
            roseType : 'radius',
            width: '40%',       // for funnel
            max: 40,            // for funnel
            itemStyle : {
                normal : {
                    label : {
                        show : false
                    },
                    labelLine : {
                        show : false
                    }
                },
                emphasis : {
                    label : {
                        show : true
                    },
                    labelLine : {
                        show : true
                    }
                }
            },
            data:[
                {value:10, name:'rose1'},
                {value:5, name:'rose2'},
                {value:15, name:'rose3'},
                {value:25, name:'rose4'},
                {value:20, name:'rose5'},
                {value:35, name:'rose6'},
                {value:30, name:'rose7'},
                {value:40, name:'rose8'}
            ]
        },
        {
            name:'面积模式',
            type:'pie',
            radius : [30, 110],
            center : ['75%', 200],
            roseType : 'area',
            x: '50%',               // for funnel
            max: 40,                // for funnel
            sort : 'ascending',     // for funnel
            data:[
                {value:10, name:'rose1'},
                {value:5, name:'rose2'},
                {value:15, name:'rose3'},
                {value:25, name:'rose4'},
                {value:20, name:'rose5'},
                {value:35, name:'rose6'},
                {value:30, name:'rose7'},
                {value:40, name:'rose8'}
            ]
        }
    ]
};
			console.log(theme);
				//myChart.setTheme('sakura');
                myChart.setOption(option);
            }
        );

    </script>

 这种是模块化单文件来引入Echarts2.2的,我不会使用setTitle这个函数,也就无法实现官网的切换主题功能了,而且如果使用标签化单文件引入Echarts2.2的话,设置主题我也不会了,应该是要改JS主题文件,因为我看到里面有些都没设变量

Echart4的话就轻松多了

首先准备一些JS文件,jquery.min.js用来获取,theme主题文件我从官网下了几个

然后在代码里引用

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Echarts Theme Switch</title>
    <script src="./js/jquery.min.js"></script>
    <script src="./js/echarts.js" type="text/javascript" charset="utf-8"></script>
    <script src = './js/theme/dark.js'></script>
    <script src = './js/theme/macarons.js'></script>
    <script src = './js/theme/purple-passion.js'></script>
</head>
<body>
<select name="" id="sel">
    <option value="dark">dark</option>
    <option value="macarons">purple-passion</option>

</select>
<button id = 'clear'>clear</button>
<div id = 'zhuzhuangtu' style="height:399px;"></div>
</body>
</html>
<script>
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('zhuzhuangtu'),'dark');
    // 指定图表的配置项和数据
    var option = {
        
    title : {
        text: '南丁格尔玫瑰图',
        subtext: '纯属虚构',
        x:'center'
    },
    tooltip : {
        trigger: 'item',
        formatter: "{a} <br/>{b} : {c} ({d}%)"
    },
    legend: {
        x : 'center',
        y : 'bottom',
        data:['rose1','rose2','rose3','rose4','rose5','rose6','rose7','rose8']
    },
    toolbox: {
        show : true,
        feature : {
            mark : {show: true},
            dataView : {show: true, readOnly: false},
            magicType : {
                show: true, 
                type: ['pie', 'funnel']
            },
            restore : {show: true},
            saveAsImage : {show: true}
        }
    },
    calculable : true,
    series : [
        {
            name:'半径模式',
            type:'pie',
            radius : [20, 110],
            center : ['25%', 200],
            roseType : 'radius',
            width: '40%',       // for funnel
            max: 40,            // for funnel
            itemStyle : {
                normal : {
                    label : {
                        show : false
                    },
                    labelLine : {
                        show : false
                    }
                },
                emphasis : {
                    label : {
                        show : true
                    },
                    labelLine : {
                        show : true
                    }
                }
            },
            data:[
                {value:10, name:'rose1'},
                {value:5, name:'rose2'},
                {value:15, name:'rose3'},
                {value:25, name:'rose4'},
                {value:20, name:'rose5'},
                {value:35, name:'rose6'},
                {value:30, name:'rose7'},
                {value:40, name:'rose8'}
            ]
        },
        {
            name:'面积模式',
            type:'pie',
            radius : [30, 110],
            center : ['75%', 200],
            roseType : 'area',
            x: '50%',               // for funnel
            max: 40,                // for funnel
            sort : 'ascending',     // for funnel
            data:[
                {value:10, name:'rose1'},
                {value:5, name:'rose2'},
                {value:15, name:'rose3'},
                {value:25, name:'rose4'},
                {value:20, name:'rose5'},
                {value:35, name:'rose6'},
                {value:30, name:'rose7'},
                {value:40, name:'rose8'}
            ]
        }
    ]
    };

    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
    $('#sel').change(function(){
        myChart.dispose();
        let Theme = $(this).val();
        // 基于准备好的dom,初始化echarts实例
        myChart = echarts.init(document.getElementById('zhuzhuangtu'),'purple-passion');
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    });
</script>

猜你喜欢

转载自blog.csdn.net/qq_33655674/article/details/81537885