Python+pyecharts繪制交互式可視化圖表
本篇我們來了解一個新的可視化模塊pyecharts,由于爬蟲敏感問題,博主對數(shù)據(jù)已經(jīng)提取供大家使用,本篇文章僅介紹數(shù)據(jù)可視化。
一、熱力圖
案例:繪制2021部分城市的GDP熱力圖(比如上海,北京,深圳,重慶,長沙的2021年總GDP),data為一個列表,每個城市數(shù)據(jù)用元祖表示,比如:(‘上海’,43214.85)。
from pyecharts.charts import Geo from pyecharts import options as opts from pyecharts.globals import ChartType data=[('上海',43214.85),('北京',40269.60),('深圳',30664.85),('重慶',27894.02),('長沙',13270.70)] geo = (Geo() .add_schema(maptype="china") .add("人口", data, type_=ChartType.HEATMAP) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts( visualmap_opts=opts.VisualMapOpts(), legend_opts=opts.LegendOpts(is_show=False), title_opts=opts.TitleOpts(title="Geo-全國GDP圖")) ) geo.render_notebook()
運(yùn)行如下:
二、地理圖表
2.1 地理坐標(biāo)系
案例一:繪制2021部分省份的人口數(shù)量在地圖中
2.2 市區(qū)地圖
案例:標(biāo)出2021部分省份的人口數(shù)量在地圖中
from pyecharts.charts import Map data=[('福建',41540086),('廣東',126012510),('河北',74610235),('山西',34915616),('四川',83674866)] print(data) geo = ( Map() .add("", data, 'china') ) geo.render_notebook()
例如:繪制上海市各個區(qū)的平均房價交互式地圖
from pyecharts.charts import Geo from pyecharts import options as opts from pyecharts.globals import ChartType data=[('上海',43214.85),('北京',40269.60),('深圳',30664.85),('重慶',27894.02),('長沙',13270.70)] geo = (Geo() .add_schema(maptype="china") .add("人口", data, type_=ChartType.HEATMAP) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts( visualmap_opts=opts.VisualMapOpts(), legend_opts=opts.LegendOpts(is_show=False), title_opts=opts.TitleOpts(title="Geo-全國GDP圖")) ) geo.render_notebook()
運(yùn)行如下:
2.3人口流動圖
案例:河南省人口輸出到外省的人口量。依次向廣東,浙江,江蘇,上海,北京傳輸人口277.36,246.59,219.72,134.3.127.1萬人。
from pyecharts import options as opts from pyecharts.charts import Geo from pyecharts.globals import ChartType, SymbolType c = ( Geo() .add_schema(maptype="china") .add( "", [("廣東",277.36), ("浙江", 246.59), ("江蘇", 219.72), ("上海", 134.3),('北京',127.1)], type_=ChartType.EFFECT_SCATTER, color="white", ) .add( "geo", [("河南", "廣東"), ("河南", "浙江"), ("河南", "江蘇"), ("河南", "上海"),('河南','北京')], type_=ChartType.LINES, effect_opts=opts.EffectOpts( symbol=SymbolType.ARROW, symbol_size=6, color="blue" ), linestyle_opts=opts.LineStyleOpts(curve=0.2), ) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="河南省主要人口輸出")) ) c.render_notebook()
運(yùn)行如下:
2.4 3D地圖
案例:繪制福建,廣東,河北,山西,四川,新疆的2021總?cè)丝跀?shù)量,繪制到3D地圖上
from pyecharts import options as opts from pyecharts.charts import Map3D from pyecharts.globals import ChartType data=[('福建',41540086),('廣東',126012510),('河北',74610235),('山西',34915616),('四川',83674866),('新疆',2585.23)] map3d = ( Map3D() .add("部分省人口數(shù)量(單位:萬)", data_pair=data, maptype='china') ) map3d.render_notebook()
2.5 3D地球
案例:繪制一個立體的3D地球
from pyecharts.faker import POPULATION from pyecharts.charts import MapGlobe globe = ( MapGlobe() .add_schema() .add( series_name="", maptype="world", data_pair=POPULATION[1:] ) ) globe.render_notebook()
如下:
三、疫情數(shù)據(jù)可視化
本小節(jié)做一個簡單的案例,輕松簡單的做一個疫情數(shù)據(jù)顯示屏,由于爬蟲知識敏感問題,所以這里作者直接把數(shù)據(jù)拿出來了,數(shù)據(jù)日期為2022年4月24日數(shù)據(jù),數(shù)據(jù)來源:丁香醫(yī)生。數(shù)據(jù)僅供參考,不作任何用途。
from pyecharts.charts import Map from pyecharts import options as opts data=[['香港', 328074], ['臺灣', 56468], ['上海', 43782], ['吉林', 39903], ['浙江', 2984], ['黑龍江', 2851], ['廣東', 6981], ['江西', 1184], ['江蘇', 2175], ['福建', 3002], ['山東', 2676], ['北京', 1876], ['廣西', 1572], ['山西', 413], ['海南', 288], ['青海', 88], ['云南', 2114], ['四川', 1999], ['河南', 2878], ['湖南', 1362], ['陜西', 3276], ['河北', 1993], ['內(nèi)蒙古', 1706], ['安徽', 1063], ['遼寧', 1614], ['湖北', 68398], ['天津', 1800], ['重慶', 694], ['貴州', 179], ['新疆', 999], ['甘肅', 681], ['寧夏', 122], ['澳門', 82], ['西藏', 1]] print(data) geo = ( Map() .add("感染人數(shù)", data, 'china') # 傳入數(shù)據(jù),地圖選擇中國 ) geo.render_notebook()
效果如下:
為了讓圖更加優(yōu)美,需要對它設(shè)置標(biāo)簽,顏色信息,所以添加set_global_opts方法,修改后代碼如下:
from pyecharts.charts import Map from pyecharts import options as opts data=[['香港', 328074], ['臺灣', 56468], ['上海', 43782], ['吉林', 39903], ['浙江', 2984], ['黑龍江', 2851], ['廣東', 6981], ['江西', 1184], ['江蘇', 2175], ['福建', 3002], ['山東', 2676], ['北京', 1876], ['廣西', 1572], ['山西', 413], ['海南', 288], ['青海', 88], ['云南', 2114], ['四川', 1999], ['河南', 2878], ['湖南', 1362], ['陜西', 3276], ['河北', 1993], ['內(nèi)蒙古', 1706], ['安徽', 1063], ['遼寧', 1614], ['湖北', 68398], ['天津', 1800], ['重慶', 694], ['貴州', 179], ['新疆', 999], ['甘肅', 681], ['寧夏', 122], ['澳門', 82], ['西藏', 1]] print(data) geo = ( Map() .add("感染人數(shù)", data, 'china') # 傳入數(shù)據(jù),地圖選擇中國 .set_global_opts( title_opts=opts.TitleOpts(title="2022-4-23中國疫情地圖"), visualmap_opts=opts.VisualMapOpts(max_=10000, is_piecewise=True, #最大數(shù)據(jù)范圍,分段 # 第一段設(shè)置為:猩紅 pieces=[ {"max": 99999, "min": 10001, "label": ">10000", "color": "#DC143C"}, {"max": 10000, "min": 1000, "label": "1000-10000", "color": "#8A0808"}, {"max": 999, "min": 500, "label": "500-999", "color": "#B40404"}, {"max": 499, "min": 100, "label": "100-499", "color": "#DF0101"}, {"max": 99, "min": 10, "label": "10-99", "color": "#F78181"}, {"max": 9, "min": 1, "label": "1-9", "color": "#F5A9A9"}, {"max": 0, "min": 0, "label": "0", "color": "#FFFFFF"}, ], is_calculable=True) ) ) geo.render_notebook()
運(yùn)行:
pyecharts是圖表是可以制作成網(wǎng)頁的,作者在此留下一個思考:是否可以制作實(shí)時每天每小時更新的這樣網(wǎng)頁?當(dāng)然,這留給感興趣的同學(xué)去探索。因?yàn)樵O(shè)計爬蟲,前端,數(shù)據(jù)分析,可視化。本書主要只介紹了數(shù)據(jù)可視化與數(shù)據(jù)分析。
四、空氣質(zhì)量數(shù)據(jù)可視化
案例:繪制身份的降雨量在地圖上。(數(shù)據(jù)來源由作者隨機(jī)設(shè)置,讀者可以自行查看相關(guān)數(shù)據(jù)網(wǎng)站設(shè)置真實(shí)值)
from pyecharts.charts import Map from pyecharts import options as opts attr_1= [95, 56, 87, 92, 74, 79, 82,68 , 59, 63, 82] value_1 = ["福建","河南","浙江","江西","貴州","四川","上海","北京","湖北","廣西","河北"] # print([list(z) for z in zip(attr_1, value_1)]) c = ( Map() .add("空氣質(zhì)量", [list(z) for z in zip(attr_1, value_1)],"china") # 用列表推導(dǎo)式對兩個列表合并成對應(yīng)形式 .set_global_opts( title_opts=opts.TitleOpts(title="降雨量可視化"), visualmap_opts=opts.VisualMapOpts(max_=100,is_piecewise=True ) ) ) # c.render_notebook() c.render(r"1.html")
運(yùn)行如下:
本次案例對圖形保存為html格式文件,可以使用瀏覽器打開查看自己的圖形。唯一的區(qū)別就是最后一行:c.render(r"1.html"),它所代表的含義為對圖形保存為1.html文件,也就是網(wǎng)頁文件。
五、外賣點(diǎn)分布數(shù)據(jù)可視化
案例:假設(shè)獲取到美團(tuán)與餓了么的部分省份騎手?jǐn)?shù)量,對該數(shù)據(jù)同時繪制在一張圖上。(數(shù)據(jù)由作者隨意設(shè)置,僅供參考)
from pyecharts import options as opts value_1 = [1500, 1300, 20000, 23000, 3500, 3400, 2500] attr_1 = ["福建","山東","北京","上海","江西","云南","重慶"] value_2 = [21000, 16520, 24120, 17820, 9542, 4689, 4325, 8950,] attr_2 = ["北京","廣東","上海","浙江","四川","貴州","云南","重慶"] c = ( Map() .add("餓了么", [list(z) for z in zip(attr_1, value_1)],"china") .add("美團(tuán)", [list(z) for z in zip(attr_2, value_2)],"china") .set_global_opts( title_opts=opts.TitleOpts(title="美團(tuán)-餓了么騎手分布"), visualmap_opts=opts.VisualMapOpts(max_=25000,is_piecewise=True) ) ) # c.render_notebook() c.render(r"2.html")
效果如下:
六、總結(jié)
本篇文章帶大家進(jìn)入了一個新的數(shù)據(jù)可視化模塊,它非常適合制作可視化大屏
以上就是Python+pyecharts繪制交互式可視化圖表的詳細(xì)內(nèi)容,更多關(guān)于Python pyecharts可視化圖表的資料請關(guān)注腳本之家其它相關(guān)文章!
- Python數(shù)據(jù)可視化 pyecharts實(shí)現(xiàn)各種統(tǒng)計圖表過程詳解
- python的pyecharts繪制各種圖表詳細(xì)(附代碼)
- 一文教你用Pyecharts做交互圖表
- Python數(shù)據(jù)可視化之基于pyecharts實(shí)現(xiàn)的地理圖表的繪制
- 詳解如何基于Pyecharts繪制常見的直角坐標(biāo)系圖表
- Python使用pyecharts控件繪制圖表
- 教你用pyecharts繪制各種圖表案例(效果+代碼)
- Python繪制地理圖表可視化神器pyecharts
- Python可視化神器pyecharts繪制地理圖表
- Python可視化神器pyecharts之繪制地理圖表練習(xí)
- Pyecharts之特殊圖表的實(shí)現(xiàn)示例
相關(guān)文章
python tkinter實(shí)現(xiàn)屏保程序
這篇文章主要為大家詳細(xì)介紹了python tkinter實(shí)現(xiàn)屏保程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07Python快速轉(zhuǎn)換numpy數(shù)組中Nan和Inf的方法實(shí)例說明
今天小編就為大家分享一篇關(guān)于Python快速轉(zhuǎn)換numpy數(shù)組中Nan和Inf的方法實(shí)例說明,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02用Python實(shí)現(xiàn)寫倒序輸出(任意位數(shù))
這篇文章主要介紹了用Python實(shí)現(xiàn)寫倒序輸出(任意位數(shù)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05pycharm的debug調(diào)試以及異常,Python中錯誤的處理過程
這篇文章主要介紹了pycharm的debug調(diào)試以及異常,Python中錯誤的處理過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01python游戲?qū)崙?zhàn)項(xiàng)目之俄羅斯方塊的魅力
遲早一定會掛掉的俄羅斯方塊,為什么至今仍是世界游戲之王?它是怎么編寫的?本文將給大家詳細(xì)的介紹,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值2021-09-09Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解
這篇文章主要介紹了Numpy中np.random.rand()和np.random.randn() 用法和區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10python3中@dataclass的實(shí)現(xiàn)示例
@dataclass?是 Python 3.7 引入的一個裝飾器,用于方便地定義符合數(shù)據(jù)類協(xié)議的類,本文主要介紹了python3中@dataclass的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-02-02GitHub?AI編程工具copilot在Pycharm的應(yīng)用
最近聽說github出了一種最新的插件叫做copilot,這篇文章主要給大家介紹了關(guān)于GitHub?AI編程工具copilot在Pycharm的應(yīng)用,目前感覺確實(shí)不錯,建議大家也去使用,需要的朋友可以參考下2022-04-04