昨天發了篇 8行Python代碼輕鬆繪製新冠疫情地圖,介紹使用PyEcharts繪製疫情地圖,有朋友就問是否能繪製動態地圖,那必須能夠。
須要用到一個相似時間軸的Timeline組件。具體原理就是先建立一個時間軸,而後往裏面添加製做好的不一樣時間的地圖,若是地圖不少,寫一個循環自動讀取數據就能夠了。
咱們先來看看繪製的動態地圖效果。html
本文繼續採用v1.x版本進行繪製地圖。
首先導入須要使用的模塊:echarts
import pandas from pyecharts.charts import Map from pyecharts import options as opts from pyecharts.charts import Timeline
而後導入須要數據,數據是這樣的,存在Excel表格中:ide
長按識別下方二維碼,並關注公衆號
回覆「DTX」獲取案例數據函數
data = pandas.read_excel('C:/Python/xgyq.xlsx',sheet_name='2', index_col='time') #取出省份列表 attr = data.columns.tolist() #統計數據條數 n = len(data.index)
而後定義一個每日地圖繪製函數學習
#定義每日地圖繪製函數 def map_visualmap(sequence, date) -> Map: c = ( Map() .add(date, sequence, maptype="china") .set_global_opts( title_opts=opts.TitleOpts(title="全國疫情動態地圖"), visualmap_opts=opts.VisualMapOpts(max_=150), ) ) return c
最後就能夠使用每日地圖繪製函數繪製地圖了excel
#建立時間軸對象 timeline = Timeline() for i in range(n): #取每日數據 row = data.iloc[i,].tolist() #將數據轉換爲二元的列表 sequence_temp = list(zip(attr,row)) #對日期格式化以便顯示 time = format(data.index[i], "%Y-%m-%d") #建立地圖 map_temp = map_visualmap(sequence_temp,time) #將地圖加入時間軸對象 timeline.add(map_temp,time).add_schema(play_interval=360) # 地圖建立完成後,經過render()方法能夠將地圖渲染爲html timeline.render('全國疫情動態地圖.html')
長按識別下方二維碼,並關注公衆號,回覆「PY」領取1GB Python數據分析資料
1.回覆「PY」領取1GB Python數據分析資料
2.回覆「BG」領取5GB 名企數據分析報告code