Echart繪制動態(tài)地圖

利用Echart繪制的逐年LEED項(xiàng)目熱圖

前幾日買回來《R語言數(shù)據(jù)可視化之美:專業(yè)圖表繪制指南(增強(qiáng)版)》俭识,看到作者張杰在“增強(qiáng)版特別說明”里專門提到了地圖繪制時需嚴(yán)格執(zhí)行各種規(guī)定巍虫,否則無法通過審核程序彭则。我買到的是增強(qiáng)版,而該書這之前的版本中占遥,作者為通過審核計沒有收入地圖繪制的內(nèi)容。如早些時候的2019第23周:評《R語言數(shù)據(jù)可視化之美:專業(yè)圖表繪制指南》文中就提到該書最新出版的版本中缺少了空間數(shù)據(jù)可視化部分內(nèi)容输瓜。

《R語言數(shù)據(jù)可視化之美:專業(yè)圖表繪制指南(增強(qiáng)版)》特別說明

說起來由于地圖引發(fā)的各種爭議也不在少數(shù)瓦胎,也因此利用ECharts繪制地圖應(yīng)該是可以省去大家不少這方面的麻煩芬萍。ECharts是最先由百度開發(fā)的使用 JavaScript 實(shí)現(xiàn)的開源可視化庫,其功能強(qiáng)大搔啊、交互豐富柬祠,直觀且好用。盡管百度公司在其它方面的口碑不怎么樣负芋,但Echart絕對算得上是Baidu的良心之作了漫蛔。

比如在Python for Data Analysis和前面提到的《R語言數(shù)據(jù)可視化之美:專業(yè)圖表繪制指南(增強(qiáng)版)》的教程中,介紹的都是R或者Python調(diào)用.shp格式的地圖的方法旧蛾。這些方法中首先能找到的合適的.shp文件本就不易莽龟,辛辛苦苦生成了地圖也可能又不符合各種規(guī)定也說不定。反正我試過了.shp的方法后锨天,再換到ECharts來生成地圖后就再也不想去用.shp文件格式地圖了毯盈。

ECharts繪制動態(tài)地圖實(shí)例

如題圖所示,仍然以國內(nèi)的LEED認(rèn)證項(xiàng)目統(tǒng)計數(shù)據(jù)為例病袄,利用Echarts生成的動態(tài)地圖以對比各省之間的項(xiàng)目數(shù)量搂赋,以及歷年的認(rèn)證項(xiàng)目數(shù)量增長趨勢。
參照Echarts官方樣例中地圖益缠,以及timeline 組件脑奠,就可以輕松得到上圖中的效果了。
Echarts的官方教程宣稱5 分鐘上手 ECharts幅慌,事實(shí)上也確實(shí)如此宋欺。
在引入Echats之后,不管選用的是哪種類型的圖標(biāo)欠痴,首先第一步就是定制視圖選項(xiàng)迄靠。包括標(biāo)題、配色喇辽、字體掌挚、視覺映射、工具條菩咨、懸浮顯示等等吠式。

指定Echarts圖表的配置項(xiàng)

配置好選項(xiàng)后,接下來指定數(shù)據(jù)及圖標(biāo)類型抽米,就算大功告成了特占。

    $.get("leedcn.json", function (data) {
        /*
        將json文件導(dǎo)入,數(shù)據(jù)格式:
        timeline:[2005,2006,……2017,2018]        //LEED統(tǒng)計年份數(shù)組
        // 從2005-2018年云茸,每年獲認(rèn)證的LEED項(xiàng)目數(shù)量數(shù)組
        yearseries:[[{name:"北京",value:2}, …{name:"西藏",value:0}],
                        ……
                     [{name:"北京",value:216}, …{name:"西藏",value:0}]]
        //從2005-2018年是目,累加的各省LEED項(xiàng)目數(shù)量數(shù)組
        totalseries:[[{name:"北京",value:2}, …{name:"西藏",value:0}],
                        ……
                     [{name:"北京",value:216}, …{name:"西藏",value:0}]]    
        */
       
        // 解析json文本賦值給object
        //cnDataset = eval('('+ data +')'); 
       cnDataset = eval(data);
        // 調(diào)用完成后將loading動畫停止
        myChart.hideLoading();

    // debugger
    // 按年份將數(shù)據(jù)賦值給地圖填色
    for (var n = 0; n < cnDataset.timeline.length; n++) {
            option.baseOption.timeline.data.push(cnDataset.timeline[n]);
            option.options.push({
                title: {
                    show: true,
                    'text': cnDataset.timeline[n] + ''
                },
                series: {
                    name: cnDataset.timeline[n],
                    type: 'map',
                    roam: false,
                    map: 'china',
                    data: cnDataset.totalseries[n],
                    }
            });
        }
        myChart.setOption(option);
        });

如代碼中所示,Echarts圖表中的圖表類型和數(shù)據(jù)由series來指定标捺,Echarts還支持多個series實(shí)現(xiàn)類似讓Echarts幾年前一舉成名的百度人口遷徙大數(shù)據(jù)可視化之類的更加炫酷的效果懊纳。下圖就是將餅圖和堆疊面積圖合體后的效果揉抵。但不論如何我始終覺得,利用ECharts來生成動態(tài)地圖算得上是它的優(yōu)勢之一嗤疯。

堆疊圖與餅圖的合體
map(white background).gif

本文中的完整代碼參見LEED in ChinaLEED in China(version 2)冤今,最好的Echarts學(xué)習(xí)資源應(yīng)該說是官方的教程和樣例,所以感興趣的同學(xué)不妨前往官網(wǎng)圍觀茂缚。Echarts的支持文檔完整詳細(xì)馏臭,還可以在Echarts官方樣例上在線修改并實(shí)時查看效果卤橄,真的是非常方便了。
包括Plotly和R中g(shù)ganimate等在內(nèi)的工具包都可以實(shí)現(xiàn)動態(tài)圖表,但各路大神們?yōu)镋charts開發(fā)了R語言Python的API接口浅蚪,由此也可見Echarts的江湖地位了收叶。
地圖就說到這了碟贾,等有空了再來試下把ECharts的動態(tài)網(wǎng)頁插入的PPT中防嗡。

參考資料
  1. Echart教程
  2. "Life Expectancy and GDP"實(shí)例
  3. "Air Quality - Baidu Map"實(shí)例
  4. recharts: 百度ECharts 2的R語言接口
  5. pyecharts - A Python Echarts Plotting Library
  6. 如何用 R 繪制動態(tài)統(tǒng)計圖?
  7. Python 可視化神器-Plotly Express
  8. Powerpoint的舊瓶裝上ECharts的新酒淮逊,讓你的年終總結(jié)PPT高大上起來——Web Viewer 與 WebBrowser對比
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末催首,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子泄鹏,更是在濱河造成了極大的恐慌郎任,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件备籽,死亡現(xiàn)場離奇詭異舶治,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)车猬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門霉猛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人珠闰,你說我怎么就攤上這事惜浅。” “怎么了伏嗜?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵坛悉,是天一觀的道長。 經(jīng)常有香客問我承绸,道長裸影,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任军熏,我火速辦了婚禮轩猩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己界轩,他們只是感情好画饥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布衔瓮。 她就那樣靜靜地躺著浊猾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪热鞍。 梳的紋絲不亂的頭發(fā)上葫慎,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機(jī)與錄音薇宠,去河邊找鬼偷办。 笑死,一個胖子當(dāng)著我的面吹牛澄港,可吹牛的內(nèi)容都是我干的椒涯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼回梧,長吁一口氣:“原來是場噩夢啊……” “哼废岂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起狱意,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤湖苞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后详囤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體财骨,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年藏姐,在試婚紗的時候發(fā)現(xiàn)自己被綠了隆箩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡羔杨,死狀恐怖捌臊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情问畅,我是刑警寧澤娃属,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站护姆,受9級特大地震影響矾端,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜卵皂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一秩铆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦殴玛、人聲如沸捅膘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寻仗。三九已至,卻和暖如春凡壤,著一層夾襖步出監(jiān)牢的瞬間署尤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工亚侠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留曹体,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓硝烂,卻偏偏與公主長得像箕别,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子滞谢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容