python绘制全国图_python-使用pyecharts绘制各省份高校数量图
1、環(huán)境
代碼運(yùn)行環(huán)境:python3.7
相關(guān)的庫:pyecharts?1.7.1
代碼編輯器:visual studio code
2、目的
通過使用pyecharts庫,來繪制全國各省985高校的數(shù)量分布圖,用這個(gè)來練習(xí)pyecharts庫繪制地圖。
3、相關(guān)說明
(1)pyecharts庫簡介
官方的簡介如下:Echarts是一個(gè)由百度開源的數(shù)據(jù)可視化,能夠進(jìn)行良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。而Python是一門富有表達(dá)力的語言,很適合用于數(shù)據(jù)處理。分析遇上數(shù)據(jù)可視化時(shí),pyecharts誕生了。
使用pyecharts庫來生成地圖特別方便,而且官方提供了圖庫樣本,對(duì)開發(fā)人員來說省事了不少,我也是今天才初次接觸到這個(gè)庫,這篇博客也是簡單的記錄一下自己的學(xué)習(xí)過程。
(2)使用visual studio code動(dòng)態(tài)預(yù)覽html文件
由于使用pyecharts庫輸出的是一個(gè)html文件,我又不想每次都去點(diǎn)擊輸出的html文件再運(yùn)行,很麻煩。于是在網(wǎng)上找了一下如何在vs code中運(yùn)行html文件。
我執(zhí)行python,更新html后,繪制的圖就會(huì)更新,用來調(diào)試還是很方便的。效果圖如下:
4、代碼及其說明
(1)官方給的參考代碼
1 from pyecharts importoptions as opts2 from pyecharts.charts importMap3 from pyecharts.faker importFaker4
5 c =(6 Map()7 .add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")8 .set_global_opts(9 title_opts=opts.TitleOpts(title="Map-VisualMap(分段型)"),10 visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),11 )12 .render("map_visualmap_piecewise.html")13 )
這種寫作分隔的代碼我之前沒怎么接觸過(可能是由于我接觸的代碼太少了,囧),看了好一會(huì)兒才明白它的意思。
它的含義其實(shí)就是實(shí)例化了一個(gè)類對(duì)象,并使用了類的add、set_global_opts和render方法,上面的代碼等價(jià)與如下的代碼:
1 m =Map()2 m.add("商家A", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")3 m.set_global_opts(4 title_opts=opts.TitleOpts(title="Map-VisualMap(分段型)"),5 visualmap_opts=opts.VisualMapOpts(max_=200, is_piecewise=True),6 )7 m.render("map_visualmap_piecewise.html")
果然我還是習(xí)慣下面這種代碼風(fēng)格。
(2)各省份985高校分布圖
直接放代碼了:
1 #encoding: utf-8
2
3 from pyecharts.charts importMap4 from pyecharts importoptions as opts5 from college importschool_list_of_9856
7
8 #獲取高校數(shù)據(jù)
9 defget_data():10 provinces =[]11 school_nums =[]12 for province inschool_list_of_985:13 provinces.append(province)14 school_nums.append(len(school_list_of_985[province]))15 return[provinces, school_nums]16
17
18 #繪制地圖
19 defdraw_a_map(data):20 provinces =data[0]21 school_nums = data[1]22 mm =Map()23 mm.add(‘學(xué)校數(shù)量‘, [[provinces[i], school_nums[i]] for i in range(len(provinces))], "china")24 mm.set_global_opts(25 title_opts=opts.TitleOpts(title="全國985高校分布圖"),26 visualmap_opts=opts.VisualMapOpts(max_=8, is_piecewise=True, split_number=4),27 )28 mm.render("map_visualmap_piecewise.html")29
30
31 if __name__ == ‘__main__‘:32
33 data = data =get_data()34
35 if len(data[0]) == len(data[1]):36 draw_a_map(data)
這里主要調(diào)用了Map類的兩個(gè)方法,
一個(gè)是set_global_opts方法,沒找到官方說明,不過它的參數(shù)也不多,直接看源碼也能大概猜個(gè)一二。
上面的college是我自定義的一個(gè)py文件,里面放的是一個(gè)字典school_list_of_985,我也把它放出來吧。
1 #{province: school}
2 school_list_of_985 ={3 "北京": [‘北京大學(xué)‘, ‘清華大學(xué)‘, ‘中國人民大學(xué)‘, ‘北京理工大學(xué)‘, ‘北京航空航天大學(xué)‘, ‘北京師范大學(xué)‘, ‘中央民族大學(xué)‘, ‘中國農(nóng)業(yè)大學(xué)‘],4 ‘陜西‘: [‘西安交通大學(xué)‘, ‘西北農(nóng)林科技大學(xué)‘, ‘西北工業(yè)大學(xué)‘],5 ‘湖南‘: [‘湖南大學(xué)‘, ‘中南大學(xué)‘, ‘國防科技大學(xué)‘],6 ‘上海‘: [‘同濟(jì)大學(xué)‘, ‘復(fù)旦大學(xué)‘, ‘上海交通大學(xué)‘, ‘華東師范大學(xué)‘],7 ‘四川‘: [‘四川大學(xué)‘, ‘電子科技大學(xué)‘],8 ‘湖北‘: [‘武漢大學(xué)‘, ‘華中科技大學(xué)‘],9 ‘江蘇‘: [‘南京大學(xué)‘, ‘東南大學(xué)‘],10 ‘天津‘: [‘天津大學(xué)‘, ‘南開大學(xué)‘],11 ‘遼寧‘: [‘東北大學(xué)‘, ‘大連理工大學(xué)‘],12 ‘山東‘: [‘山東大學(xué)‘, ‘中國海洋大學(xué)‘],13 ‘廣東‘: [‘中山大學(xué)‘, ‘華南理工大學(xué)‘],14 ‘福建‘: [‘廈門大學(xué)‘],15 ‘浙江‘: [‘浙江大學(xué)‘],16 ‘安徽‘: [‘中國科學(xué)技術(shù)大學(xué)‘],17 ‘重慶‘: [‘重慶大學(xué)‘],18 ‘黑龍江‘: [‘哈爾濱工業(yè)大學(xué)‘],19 ‘吉林‘: [‘吉林大學(xué)‘],20 ‘甘肅‘: [‘蘭州大學(xué)‘]21 }
5、效果圖
執(zhí)行的結(jié)果如下:
至此,這篇博客也就寫在這里了,當(dāng)然pyecharts庫還有很多其它的圖表,我暫時(shí)沒使用,就不說明它了。使用現(xiàn)成的API進(jìn)行開發(fā),其實(shí)是很快速簡單的一件事,往API中填數(shù)據(jù)就可以了。
如果文中有什么錯(cuò)誤的地方,還望網(wǎng)友指出來。
總結(jié)
以上是生活随笔為你收集整理的python绘制全国图_python-使用pyecharts绘制各省份高校数量图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 终端/vscode git
- 下一篇: python爬取某信公众号所有信息,并批