使用echarts画饼状图,设置饼状图颜色

本文详细介绍了如何使用ECharts库绘制饼状图,包括设置容器尺寸、配置参数、定时切换颜色块以及关键代码示例。重点讲解了如何通过color属性自定义颜色块样式,并通过定时器实现颜色块的动态效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

使用echarts遇到过的坑:

  • 一定要给图表容器添加宽度与高度。
  • 图表在容器中可以调整位置,让图表显示的更完整。

今日分享重点:画饼状图。
1.引入相关js

<script type="text/javascript" src="../js/jquery-2.1.1.js"></script>
<script type="text/javascript" src="../echarts-4.2.0/echarts.min.js"></script>

2.确定容器

<div id="pie" style="width: 600px; height: 325px; margin-top: 100px; margin-left: 200px;">
</div>

3.定义画饼状图的方法,配置图表参数

/**
 * 画饼图,主要用来画入郑、出郑行程时间统计
 * @param container 容器
 * @param legendData 菜单
 * @param seriesData 图表数据
 */
function drawPie(container, legendData, seriesData) {
    var pieChart = echarts.init(document.getElementById(container));
    pieChartOption = {
        tooltip : {
            trigger : 'item',
            formatter : "{a} <br/>{b} : {c} ({d}%)"
        },
        legend : {
            show : true,
            type : 'scroll',
            orient : 'horizontal',
            left : 120,
            top : 20,
            bottom : 20,
            data : legendData,
            textStyle : {
                color : 'white'
            }
        },
        //设置饼状图每个颜色块的颜色
        color : [ 'red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'purple' ],
        series : [ {
            name : '颜色',
            type : 'pie',
            radius : '55%',
            center : [ '53%', '50%' ],
            label : {
                normal : {
                    //饼形图显示格式
                    formatter : '{b|{b}}  {per|{d}%}  ',
                    rich : {
                        b : {
                            color : 'white',
                            fontSize : 14,
                            lineHeight : 33
                        },
                        //设置百分比数字颜色
                        per : {
                            color : '#00B4FB',
                            fontSize : 14,
                            padding : [ 2, 4 ],
                            borderRadius : 2
                        }
                    }
                }
            },
            data : seriesData,
            itemStyle : {
                emphasis : {
                    shadowBlur : 10,
                    shadowOffsetX : 0,
                    shadowColor : 'rgba(0, 0, 0, 0.5)'
                }
            }
        } ]
    };
    pieChart.setOption(pieChartOption);
    var app = {};
    app.currentIndex = -1;
    var myTimer = setInterval(
            function() {
                var dataLen = pieChartOption.series[0].data.length;
                if ((app.currentIndex < dataLen - 1)
                        && pieChartOption.series[0].data[app.currentIndex + 1].value == 0) {
                    pieChart.dispatchAction({
                        type : 'downplay',
                        seriesIndex : 0,
                        dataIndex : app.currentIndex
                    });
                    app.currentIndex = (app.currentIndex + 1) % dataLen;
                } else {
                    // 取消之前高亮的图形
                    pieChart.dispatchAction({
                        type : 'downplay',
                        seriesIndex : 0,
                        dataIndex : app.currentIndex
                    });
                    app.currentIndex = (app.currentIndex + 1) % dataLen;
                    // 高亮当前图形
                    pieChart.dispatchAction({
                        type : 'highlight',
                        seriesIndex : 0,
                        dataIndex : app.currentIndex
                    });
                    // 显示 tooltip
                    pieChart.dispatchAction({
                        type : 'showTip',
                        seriesIndex : 0,
                        dataIndex : app.currentIndex
                    });
                }
            }, 3000);
}

4.调用方法,传递参数

var legendData = ["红色", "橙色", "黄色", "绿色", "蓝色", '靛色', '紫色'];
var seriesData = [
                   {name: "红色", value: 14},
                   {name: "橙色", value: 14},
                   {name: "黄色", value: 14},
                   {name: "绿色", value: 14},
                   {name: "蓝色", value: 14},
                   {name: "靛色", value: 14},
                   {name: "紫色", value: 16},
                  ];
drawPie("pie", legendData, seriesData);

5.划重点

  • 设置饼状图每个颜色块的颜色可以使用color属性,这样就可以避免在具体的数据中每条数据再加样式。
  • 方法中有一个定时器,用来定时跳动每个颜色块。
    *其它一些小细节,有注释可以参考。

6.上图

要在Vue2中使用echarts饼状图,可以按照以下步骤进行: 1. 安装echarts 在项目中安装echarts,可以使用npm或yarn进行安装,命令如下: ``` npm install echarts --save ``` 或者 ``` yarn add echarts ``` 2. 引入echarts 在需要使用echarts的组件中引入echarts,可以使用以下方式: ```javascript import echarts from 'echarts' ``` 3. 创建echarts实例 在组件的mounted钩子函数中创建echarts实例,代码如下: ```javascript mounted () { // 基于准备好的dom,初始化echarts实例 const myChart = echarts.init(this.$refs.chart) // 绘制表 myChart.setOption(this.chartOptions) } ``` 其中,this.$refs.chart是一个DOM元素,用于渲染echarts表。this.chartOptions是一个包含echarts配置选项的对象,可以根据需要进行设置。 4. 设置饼状图的配置选项 在data中定义一个包含饼状图数据的数组,然后在chartOptions中设置饼状图的配置选项,代码如下: ```javascript data () { return { pieData: [ {value: 335, name: '直接访问'}, {value: 310, name: '邮件营销'}, {value: 234, name: '联盟广告'}, {value: 135, name: '视频广告'}, {value: 1548, name: '搜索引擎'} ] } }, chartOptions: { title: { text: '饼状图示例', subtext: '数据来自网络' }, tooltip: { trigger: 'item', formatter: '{a} <br/>{b}: {c} ({d}%)' }, legend: { orient: 'vertical', left: 10, data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎'] }, series: [ { name: '访问来源', type: 'pie', radius: '50%', data: this.pieData, itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] } ``` 其中,title、tooltip、legend和series是饼状图的配置选项,可以根据需要进行设置。在series中设置data为之前定义的pieData数组,用于展示饼状图数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

链诸葛

真爱了。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值