数据视觉化:初遇dimple.js

作者: 飘荡的鱼头头头头头大 | 来源:发表于2017-02-09 17:21 被阅读100次

    这几天在学数据视觉化,学到了d3.js和基于d3的dimple.js。
    Dimple.js虽然和d3比缺少了灵活性,但是上手比较简单,只要几行代码就可以做出一个比较美观的图。

    第一步

    我这次想要给英超联赛2000到2016的射手榜第一名做一个统计表单。我先从网上找来了他们的数据,整合进一个topscorer.csv文件:

    index,Season,Nationality,Name,Club,Goal
    1,2000-01,Netherlands,Jimmy Floyd Hasselbaink,Chelsea FC,23
    2,2001-02,France,Thierry Henry,Arsenal FC,24
    3,2002-03,Netherlands,Ruud van Nistelrooy,Manchester United,25
    4,2003-04,France,Thierry Henry,Arsenal FC,30
    5,2004-05,France,Thierry Henry,Arsenal FC,25
    6,2005-06,France,Thierry Henry,Arsenal FC,27
    7,2006-07,Ivory Coast,Didier Drogba,Chelsea FC,20
    8,2007-08,Portugal,Cristiano Ronaldo,Manchester United,31
    9,2008-09,France,Nicolas Anelka,Chelsea FC,19
    10,2009-10,Ivory Coast,Didier Drogba,Chelsea FC,29
    11,2010-11,Argentina,Carlos Tevez,Manchester City,21
    12,2010-11,Bulgaria,Dimitar Berbatov,Manchester United,21
    13,2011-12,Netherlands,Robin van Persie,Arsenal FC,30
    14,2012-13,Netherlands,Robin van Persie,Manchester United,26
    15,2013-14,Uruguay,Luis Suarez,Liverpool FC,31
    16,2014-15,Argentina,Kun Aguero,Manchester City,26
    17,2015-16,England,Harry Kane,Tottenham Hotspur,25
    

    第二步:

    接着在html文件中添加d3,js和dimple.js

        <script src="http://d3js.org/d3.v4.min.js"></script>
        <script src="http://dimplejs.org/dist/dimple.v2.3.0.min.js"></script>
    

    第三步:

    在html页面中添加svg,我的理解就是添加一个画布,以供我们往上画表格。

      var svg = dimple.newSvg("#chartContainer", 1280, 660); 
    

    第四步:

    写画图的function

      d3.csv("topscorer.csv", function (data) { /*读取csv*/
            var myChart = new dimple.chart(svg, data); /*定义一个新的chart*/
            myChart.setBounds(50, 40, 960, 560); /*设定边界*/
            var x = myChart.addCategoryAxis("x", ["Season","Name"]); /*画x轴*/
            x.title = "Season" /*修改x轴的标题*/
            x.addOrderRule("Season", false); /*修改x轴排列顺序*/
            var y = myChart.addMeasureAxis("y", "Goal");  /*画y轴,按照进球数*/
            y.title = "Goals" /*修改y轴的标题*/
            myChart.addSeries("Club", dimple.plot.bubble); /*添加bubble,按照俱乐部分类*/
            myChart.addLegend(1100, 200, 90, 300, "left"); /*在画面左侧添加图示*/
            myChart.draw(); /*画图*/
          });
    

    这样简单的四步就完成了一幅简单散点图的制作,最后成果如图所示:
    Premier League Top Scorers 2000-2016

    相关文章

      网友评论

      • 002487a78032:好棒,居然是支持d3v4的,挺新啊!感谢分享

      本文标题:数据视觉化:初遇dimple.js

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