Echarts咖啡店热门订单分析

1.训练要点
  (1)掌握 ECharts 多图表联动图形的绘制。

(2)掌握 ECharts 加载异步数据。

2、需求说明 基于“咖啡店年订单json”数据,绘制饼图与折线图的多图表联动,对咖啡店各年

的订单数据进行分析。

3.实现思路及步骤

  (1)在VS Code中创建PieLineChartLinkage.html文件。

  (2)绘制饼图与折线图联动图表。首先,在PeLinehartLinkage.html 文件中引入 echarts js 库文件。

其次,准备一个具备大小(weight与 height)的 div容器,并使用init()方法初始化容器。最后设置饼图

与折线图的图表样式后,获取数据、填入数据并显示图表。

数据如下:

{
"data":[
{"value":172.9, "name":"2012年"},{"value":232.8, "name":"2013年"},
{"value":254.5, "name":"2014年"},{"value":177.8, "name":"2015年"},
{"value":206.3, "name":"2016年"},{"value":235.4, "name":"2017年"}
],
"product":["2012年", "2013年", "2014年", "2015年", "2016年", "2017年"],
"values1":[56.5, 82.1, 88.7, 70.1, 53.4, 85.1],
"values2":[51.1, 51.4, 55.1, 53.3, 73.8, 68.7],
"values3":[40.1, 62.2, 69.5, 36.4, 45.2, 32.5],
"values4":[25.2, 37.1, 41.2, 18, 33.9, 49.1],
"names1":"Milk Tea",
"names2":"Matcha Latte",
"names3":"Cheese Cocoa",
"names4":"Walnut Brownie"
}

代码如下

<!DOCTYPE html>
<html>
 
<head>
    <meta charset="utf-8">
    <!--引入ECharts脚本-->
    <script src="js/echarts.js"></script>
</head>
 
<body>
    <!---为ECharts准备一个具备大小(宽高)的DOM-->
    <div id="main1" style="width: 700px; height: 400px"></div>
    <div id="main2" style="width: 700px; height: 400px"></div>
    <script type="text/javascript">
        //基于准备好的DOM,初始化ECharts图表
        var myChart1 = echarts.init(document.getElementById("main1"));
        var option1 = {
            title: {  //配置标题组件
                text: '咖啡店各年订单',  //设置主标题
                left: 'center'  ,//设置主次标题都左右居中
                textStyle:{
                  color:'blue',
                  fontSize:'20',
                },
            },
            tooltip: {  //配置提示框组件
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            legend: {  //配置图例组件
                orient: 'vertical',  //设置垂直排列
                left: 62,  //设置图例左边距
                top: 22,  //设置图例顶边距
                data:["2012年", "2013年", "2014年", "2015年", "2016年", "2017年"]
            },
            toolbox: {  //配置工具箱组件
                show: true,  //设置工具箱组件是否显示
                left: 444,  //设置工具箱左边距
                top: 28,  //设置工具箱顶边距
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: false },
                    magicType: {
                        show: true,
                        type: ['pie', 'funnel'],
                        option: {
                            funnel: {
                                x: '25%',
                                width: '50%',
                                funnelAlign: 'left',
                                max: 1548
                            }
                        }
                    },
                    restore: { show: true },
                    saveAsImage: { show: true }
                }
            },
            calculable: true,
            color:['blue', 'green','red', 'yellow','pink',"orange"],
            series: [  //配置数据系列组件
                {
                    name:"订单量",
                    type: 'pie',
                    radius : '66%',  //设置半径
                    //radius: ['45%', '75%'],
                    clockWise: true,
                    data: [  //设置数据的具体值
                    {"value":172.9, "name":"2012年"},{"value":232.8, "name":"2013年"},
                    {"value":254.5, "name":"2014年"},{"value":177.8, "name":"2015年"},
                    {"value":206.3, "name":"2016年"},{"value":235.4, "name":"2017年"}
                    ]
                }
            ]
        };
 
        var myChart2 = echarts.init(document.getElementById("main2"));
                option2 = {
                tooltip: {
                    trigger: 'axis'
                },
                legend: {
                    data: ["2012年", "2013年", "2014年", "2015年", "2016年", "2017年"]
                },
                grid: {
                    left: '3%',
                    right: '4%',
                    bottom: '3%',
                    containLabel: true
                },
                toolbox: {
                    feature: {
                    saveAsImage: {}
                    }
                },
                xAxis: {
                    type: 'category',
                    boundaryGap: false,
                    axisLine:{lineStyle:{color:'black'}},
                    data: ["2012年", "2013年", "2014年", "2015年", "2016年", "2017年"]
                },
                yAxis: {
                    type: 'value',
                    axisLine:{lineStyle:{color:'black'}},
                },
                color:['blue', 'yellow',"pink", 'red'],
                series: [
                    {
                    name: 'Milk Tea',
                    type: 'line',
                    stack: 'Total',
                    data: [156.5, 82.1, 88.7, 70.1, 53.4, 85.1]
                    },
                    {
                    name: 'Matcha Latte',
                    type: 'line',
                    stack: 'Total',
                    data: [51.1, 51.4, 55.1, 53.3, 73.8, 68.7]
                    },
                    {
                    name: 'Cheese Cocoa',
                    type: 'line',
                    stack: 'Total',
                    data: [40.1, 62.2, 69.5, 36.4, 45.2, 32.5]
                    },
                    {
                    name: 'Walnut Brownie',
                    type: 'line',
                    stack: 'Total',
                    data: [25.2, 37.1, 41.2, 18, 33.9, 49.1]
                    },
                  
                ]
                };
 
 
 
        myChart1.setOption(option1);   //为mychart1对象加载数据
        myChart2.setOption(option2);   //为mychart2对象加载数据
        //多图表联动配置方法1:分别设置每个ECharts对象的group值
        myChart1.group = 'group1';
        myChart2.group = 'group1';
        echarts.connect('group1');
          //使用刚指定的配置项和数据显示图表
     myChart.setOption(option);
    </script>
</body>
 
</html>

代码展示

设置每个ECharts对象为相同的group值,并通过在调用ECharts对象的connect方法时,传入group值,从而使用多个ECharts对象建立联动关系

        myChart1.setOption(option1);   //为mychart1对象加载数据
        myChart2.setOption(option2);   //为mychart2对象加载数据
        //多图表联动配置方法1:分别设置每个ECharts对象的group值
        myChart1.group = 'group1';
        myChart2.group = 'group1';
        echarts.connect('group1');
          //使用刚指定的配置项和数据显示图表

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts是一款基于JavaScript的数据可视化库,它可以帮助我们对体育比赛进行更深入的分析。 首先,ECharts可以通过绘制各种图表来展示比赛的统计数据,如柱状图、折线图、饼图等。这些图表可以直观地反映出比赛中各项数据的变化趋势和分布情况,如比分变化、得分差距、射门次数等。比赛统计数据的可视化分析可以帮助我们更好地了解比赛过程和双方球队的特点。 其次,ECharts还支持交互式可视化分析,比如通过鼠标悬停、点击等操作,可以显示更详细的数据信息。例如,鼠标悬停在某个数据点上时,可以显示该数据点的具体数值或其他相关信息。这种交互式的数据分析方式能够更好地满足用户对具体数据的需求,并且可以方便地进行比赛数据的对比和对局部数据的聚焦分析。 此外,ECharts还支持动态数据的可视化展示,可以通过刷新数据源或者借助WebSocket等技术实现数据的实时更新。这对于体育比赛分析非常重要,因为比赛的数据是实时变化的,只有实时更新才能及时地反映比赛的最新状态和数据变化。 总之,ECharts作为一款强大的数据可视化库,可以帮助我们对体育比赛进行全面的数据分析。无论是通过图表展示比赛数据的整体情况,还是通过交互式的方式深入分析局部数据,甚至是实时更新数据展示比赛进程,ECharts都可以帮助我们更好地理解和分析体育比赛。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值