美文网首页互联网科技
还在用excel做数据可视化?

还在用excel做数据可视化?

作者: 81a28fad14d5 | 来源:发表于2019-02-14 20:15 被阅读3次

    基本所有人接触数据可视化的第一步都是excel图表,不过基本也就止步于此。每天来来回回就柱状图、饼图,做的人不吐,看的人也快吐了。

    今天就介绍一款数据可视化工具及其基本原理和使用方法。先看几张图感受下,重要的是这些图可以动,可以动的图表诶,看了很有感觉有没有。动态图表需要用html格式来实现,不会的话只能截图来用。不过样式繁多,截图也还是可以接受的。

    image image

    这款工具叫ECharts,百度出品,网址:https://echarts.baidu.com/examples/index.html。同样还有另外一款简化版的叫百度图说,对于新手比较友好,不过支持的图表较少。

    ECharts用的是基于Elasticsearch自有的查询语法DSL,和CSS有点像,如果你把它当做CSS来用也没多大问题。同时,还使用了JS,不过基本是导入JS文件来使用,不用了解太多,CV下去就是,除非ECharts上没有你想要的图表或效果(这个基本不存在,官方和社区的图表组合起来可以满足绝大多数的制表需求)。

    建议上手前可以先看下官方的教程,接下去我也会以自己理解的来讲,可以根据哪种比较好理解看哪种(纯粹个人理解,理解错了轻喷)。没有基础的也没关系,知道里面的各类单词是什么意思,也可以在原有图表的基础上进行修改。

    image.png

    随便点一个图表进去,你会看到界面分为两个部分,左边为代码部分,右边为可视化图表。点击右下角的Download可以下载html格式,可以直接在浏览器中打开。

    左侧的代码是包含在<script>标签内的,修改“:”后面的参数,图表会有相应的变化。下面就以上图为例, 解析其代码含义,代码是完整的html格式,具体看“//”和!-- 内的注释,建议在电脑端观看。

    <!DOCTYPE html>
    <html style="height: 100%">
       <head>
           <meta charset="utf-8">
       </head>
       <body style="height: 100%; margin: 0"> <!--定义容器高度及外边距-->
           <div id="container" style="height: 100%"></div>  <!--定义图表的高度,多个图表可用px等具体单位,要注意适配。此处ID的值为唯一,如果有多个图表,要设置不同的值。-->
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script>
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script>
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script>
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script>
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script>
           <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=xfhhaTThl11qYVrqLZii6w8qE5ggnhrY&__ec_v__=20190126"></script>
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script>
           <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script> 
    <!--
    上面几个 script 均为实现效果所需插入的文件,多个图表的话,仅需插入这5个即可,无需重复插入。
    -->
           <script type="text/javascript">  // 此处为实现效果所需,不同图表,具体内容不同。
    
    var dom = document.getElementById("container"); //获取ID,此处()内的值要和ID一致
    var myChart = echarts.init(dom);
    var app = {};
    option = null;
    option = {
        title: {//标题
            text: '深圳月最低生活费组成(单位:元)',//标题文本
            subtext: 'From ExcelHome',//子标题
            sublink: 'http://e.weibo.com/1341556070/AjQH99che'//子标题关联的网址
        },
        tooltip : {
            trigger: 'axis',
            axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
            },
            formatter: function (params) {
                var tar = params[1];
                return tar.name + '<br/>' + tar.seriesName + ' : ' + tar.value;
            }
        },
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true//图表边距的开关,默认不修改
        },
        xAxis: {
            type : 'category',//x轴的类型
            splitLine: {show:false},
            data : ['总费用','房租','水电费','交通费','伙食费','日用品数']//x轴的属性,此处可根据x轴的不同进行修改
        },
        yAxis: {
            type : 'value'
        },
        series: [
            {
                name: '辅助',
                type: 'bar', //类型为柱状图
                stack:  '总量',//一个大的类型,在如堆积图中,可锚定同一个类型来做堆积图
                itemStyle: {
                    normal: {
                        barBorderColor: 'rgba(0,0,0,0)',//边框颜色及透明度
                        color: 'rgba(0,0,0,0)' //图表的颜色
                    },
                    emphasis: {
                        barBorderColor: 'rgba(0,0,0,0)',
                        color: 'rgba(0,0,0,0)'
                    }
                },
                data: [0, 1700, 1400, 1200, 300, 0] //空值,该表格比较特殊,因为各柱状y轴坐标不同,需要通过不同数值来确定高度。如第一个是总额2900,那高度就是0;第二个数值是1200,那其高度就是2900-1200=1700;第三个数值,因为高度剩余1700,而值是300,则高度就是1700-300=400,依此类推下去。
            },
            {
                name: '生活费',
                type: 'bar',
                stack: '总量',
                label: {
                    normal: {
                        show: true,
                        position: 'inside' //数值显示样式,inside显示在柱状内,outside显示在柱状外
                    }
                },
                data:[2900, 1200, 300, 200, 900, 300] //具体的值
            }
        ]
    };
    ;
    if (option && typeof option === "object") {//必须有的
        myChart.setOption(option, true);
    }
           </script>
       </body>
    </html>
    

    其他的图表也是这样的流程,理解“:”前面单词的意思,修改“:”后面的属性。一个图表理解了,基本所有的图表都能理解,实在不能理解,建议先去试试百度图说。

    相关文章

      网友评论

        本文标题:还在用excel做数据可视化?

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