美文网首页
15.html5笔记 技术提升? echart-- 作业

15.html5笔记 技术提升? echart-- 作业

作者: wudimingwo | 来源:发表于2018-11-22 22:24 被阅读0次

http://www.jq22.com/
echart
HTML5 Canvas绘制的图形的事件处理
这个文章写得好..

这个echart 确实很牛逼啊, canvas 完成这个样子
我很好奇两个东西,

  1. 他的事件到底是怎么封装的? 是用位置来弄的嘛?
  2. 他的这些个参数设置的思路,,,封装的时候怎么想到的捏?

还有,这个东西好实用啊!

index.html

<!DOCTYPE html>
<html>

  <head>
    <meta charset="UTF-8">
    <meta name="viewprot" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>dddd</title>
    <style type="text/css">
      #bar,
      #pie {
        display: inline-block;
        width: 400px;
        height: 400px;
        margin: 100px auto;
        border: 1px solid black;
        vertical-align: middle;
      }
    </style>
  </head>

  <body>
    <div id="bar"></div>
    <div id="pie"></div>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/echarts/4.2.0-rc.2/echarts-en.common.js"></script>
    <script type="text/javascript">
      var myBarChart = echarts.init(document.getElementById('bar'));
      var myPieChart = echarts.init(document.getElementById('pie'));

      // 定义数据

      $.ajax({
        type: "get",
        url: "echardemodata.txt",
        async: true,
        success: function(data) {
          console.log(JSON.parse(data));
          renderBar(JSON.parse(data));
        },
        error: function(e) {
          console.log(e);
        }
      });

      function renderBar(data) {
        // 对 数据进行排序
        // 这种用法还挺新奇的.
        // 有点无法解释进合适的知识系统.
        data.sort(compair("total"));
        var arrName = [];
        var arrTotal = [];
        data.forEach((item) => {
          arrName.push(item.name);
          arrTotal.push(item.total);
        })

        var option = {
          title: {
            text: '销量图',
            subtext: '各种杂物'
          },
          tooltip: {},
          legend: {
            data: ['销量']
          },
          xAxis: {
            // 这里需要传个数组.
            data: arrName
          },
          yAxis: {},
          series: [{
            name: '销量',
            type: 'bar',
            // 这里需要传个数组.
            data: arrTotal
          }]
        };

        myBarChart.setOption(option);
        // echart提供的 事件封装.
        myBarChart.on('click', function(params) {
//        console.log(params);
          renderPie(params.dataIndex,data);
        });
      }

      function compair(prop) {
        return function(a, b) {
          return a[prop] - b[prop]
        }
      }

      function renderPie(index,data) {
        
        var arrYear = [];
        
          var year = data[index].year;
          for(var key in year){
            arrYear.push({
              value : year[key],
              name : key
            })
          }
        var option = {
          backgroundColor: '#2c343c',

          title: {
            text: '每年销量',
            left: 'center',
            top: 20,
            textStyle: {
              color: '#ccc'
            }
          },

          tooltip: {
            trigger: 'item',
            formatter: "{a} <br/>{b} : {c} ({d}%)"
          },

          visualMap: {
            show: false,
            min: 80,
            max: 600,
            inRange: {
              colorLightness: [0, 1]
            }
          },
          series: [{
            name: '每年销售量',
            type: 'pie',
            radius: '55%',
            center: ['50%', '50%'],
            // 这个地方应该传参
            data: arrYear,
            roseType: 'radius',
            label: {
              normal: {
                textStyle: {
                  color: 'rgba(255, 255, 255, 0.3)'
                }
              }
            },
            labelLine: {
              normal: {
                lineStyle: {
                  color: 'rgba(255, 255, 255, 0.3)'
                },
                smooth: 0.2,
                length: 10,
                length2: 20
              }
            },
            itemStyle: {
              normal: {
                color: '#c23531',
                shadowBlur: 200,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            },

            animationType: 'scale',
            animationEasing: 'elasticOut',
            animationDelay: function(idx) {
              return Math.random() * 200;
            }
          }]
        };
        myPieChart.setOption(option);
      }

    </script>
  </body>

</html>

echardemodata.txt

            [
        {
          "name" : "羽绒服",
          "total" : 500,
          "year" : {
            "2016" : 150,
            "2017" : 160,
            "2018" : 190
          }
        },
        {
          "name" : "袜子",
          "total" : 800,
          "year" : {
            "2016" : 300,
            "2017" : 300,
            "2018" : 200
          }
        },
        {
          "name" : "筷子",
          "total" : 900,
          "year" : {
            "2016" : 150,
            "2017" : 500,
            "2018" : 250
          }
        },
        {
          "name" : "皮鞋",
          "total" : 300,
          "year" : {
            "2016" : 160,
            "2017" : 60,
            "2018" : 80
          }
        }
      ]

相关文章

  • 15.html5笔记 技术提升? echart-- 作业

    http://www.jq22.com/echartHTML5 Canvas绘制的图形的事件处理这个文章写得好.....

  • 即使再小的帆也能远航

    独处时,去看技术视频提升自己的技术,或 是看一部电影,读一篇文章,做一些笔记整理,写笔记的时候会听一些喜欢的流行音...

  • 技术赋能下的“E+家园”

    ——信息技术2.0提升工程小结 一、“实幼E+家园组”的2.0作业的指导工作 ...

  • 教练的智慧有感

    教练,是团队协作中发挥个人潜能和提升效率的管理技术;对于期待改变生活现状、提升工作业绩、融洽人际关系、追逐事业梦想...

  • 职业规划

    提升技术管理能力,提升技术格局、布局能力,提升市场产品能力

  • 如何利用机器人流程自动化,提高企业运营效率?

    随着网络技术与信息技术的不断发展,如何利用技术来提升企业运营效率受到了重视。在企业的工作业务流程中,通常有纸质文件...

  • 技术公司不是技术越强越好

    技术型公司不是技术越强越好,在提升技术的同时,要先了解一些问题: 技术的提升是一次损耗每提升一点技术,都要时间、人...

  • 8282白芷05days作业#姚安小红书裂变涨粉训营#

    今日作业: 1。写一篇爆款笔记首图标题。 2。研究一篇爆款小红书笔记。 首图用了数字标题法——提升自我的50个网站...

  • 无题

    开始到了为了作业而写的地步了。 不知道写啥。 以后写笔记记录自己技术的学习吧。 最近还在看Java核心技术,代码大...

  • 技术支持下的自然笔记

    今天晚上我聆听了信息技术提升——技术支持下的自然笔记一课,本节课由南科大二小王思思主讲。美术课不是随意的上课,而是...

网友评论

      本文标题:15.html5笔记 技术提升? echart-- 作业

      本文链接:https://www.haomeiwen.com/subject/mnerqqtx.html