亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現pyecharts動態軌跡圖

發布時間:2020-08-03 10:00:52 來源:億速云 閱讀:479 作者:小豬 欄目:開發技術

這篇文章主要講解了如何實現pyecharts動態軌跡圖,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

今天的主題!最近很多朋友問起pyecharts,尤其是地理坐標圖的制作,都說被其圖形之美給吸引到了。剛好今天也有同事問起來,那么今天就以pyecharts的動態地理軌跡圖為例,說說該怎么使用pyecharts。

import pandas as pd   
import random
from pyecharts import GeoLines, Style  #地理軌跡圖的類就是Geolines

在同事那里拿了一份國內部分城市的經緯度數據,首先用pandas讀取數據,看看數據長什么樣子,我們發現數據由一列組成,基本結構為'地名':['經度','緯度'],那么接下來我們將各地方的地名,經度,緯度提取出來。

#讀取數據
data = pd.read_excel('./Desktop/data.xlsx',header = None,names = ['name'])
print(data.head())
        name
0   '上海': [121.4648,31.2891],
1    '東莞': [113.8953,22.901],
2   '東營': [118.7073,37.5513],
3    '中山': [113.4229,22.478],
4   '臨汾': [111.4783,36.1615],
 
#寫個遍歷,把各地方的地名,經度,緯度提取出來,并存取在DataFrame中
city_list = []
lad_list = []
long_list = []
for i in data['name']:
  s = i.strip().split(':')     #去除前后空格,并以":"為分隔符分裂字符
  city = s[0][1:-1]        #取分裂后字符的第一個,得到地名
  lad = s[1].split(',')[0][2:]   #取分裂后字符的第二個,繼續以','為分隔符分裂字符
  long = s[1].split(',')[1][:-2]
  city_list.append(city)
  lad_list.append(lad)
  long_list.append(long)
result = pd.DataFrame({'地點': city_list, '經度': lad_list, '緯度': long_list})

從result數據框我們看到,一共由114行,3列數據組成,114行太多了,畫到地圖上會很亂,于是我們用random包隨機抽樣20個出來做實驗;

在抽樣之前,我們需要將數據整理成geolines要求的格式,格式為[('始點','終點')];

另外因為我們要自定義各城市的經緯度(擔心部分城市在地圖顯示不出來),pyecharts里面城市經緯度的格式為{'城市':['經度','緯度']},因此我們還需要組裝一下我們數據。

#以東莞為始點,其他各個城市為終點,整理數據
plotting = result[result['地點'] != '東莞']['地點'].apply(lambda x : ('東莞',x))
 
#自定義各城市的經緯度
geo_cities_coords = {result.iloc[i]['地點']:[result.iloc[i]['經度'],result.iloc[i]['緯度']] for i in range(len(result))}
 
#隨機抽樣20個城市組合
plotting_data = random.sample(list(plotting),20)

數據已經準備好了,接下來就套路來了,先設定畫布的格式,然后將geolines作為類Geolines的實例,接著設置geolines的參數,最后展示成果!

#設置畫布的格式
style = Style(title_pos="center", 
       width=1000, 
       height=800)
 
#部分地理軌跡圖的格式
style_geolines = style.add(is_label_show=True,
           line_curve=0.3,       #軌跡線的彎曲度,0-1
           line_opacity=0.6,      #軌跡線的透明度,0-1
           geo_effect_symbol='plane', #特效的圖形,有circle,plane,pin等等
           geo_effect_symbolsize=10,  #特效圖形的大小
           geo_effect_color='#7FFFD4', #特效的顏色
           geo_effect_traillength=0.1, #特效圖形的拖尾效果,0-1
           label_color=['#FFA500', '#FFF68F'],#軌跡線的顏色,標簽點的顏色,
           border_color='#97FFFF',   #邊界的顏色
           geo_normal_color='#36648B', #地圖的顏色
           label_formatter='{b}',   #標簽格式
           legend_pos = 'left')
 
#作圖
geolines = GeoLines('小文的pyechart出行軌跡圖', **style.init_style)
geolines.add('從東莞出發',
       plotting_data,
       maptype='china',  #地圖的類型,可以是省的地方,如'廣東',也可以是地市,如'東莞'等等
       geo_cities_coords=geo_cities_coords,
       **style_geolines)
 
#發布,得到圖形的html文件
geolines.render()

如何實現pyecharts動態軌跡圖

做到這里地理軌跡圖已經完成了,那么假如我們想畫一個既有出發又有回來的軌跡圖怎么畫呢?其實很簡單,就在上面的基礎上,再增加一個add就可以了,如下:

geolines.add('回到東莞',
       [('海口','東莞'),('拉薩','東莞'),('貴州','東莞'),('蘭州','東莞')],
       maptype='china', 
       geo_cities_coords=geo_cities_coords,
       **style_geolines)

如何實現pyecharts動態軌跡圖

好了,我們看到了有幾架小飛機回到東莞了,分別是我們設置的拉薩,貴州,海口和蘭州,這樣看似乎有點亂,那么我們可以設置一個參數,使得出發和回程分開,先設置is_legend_show = True,再設legend_selectdmode = 'single',點擊不同的圖例就可以顯示了,如下:

style_geolines = style.add(is_label_show=True,
           line_curve=0.3,       
           line_opacity=0.6,      
           geo_effect_symbol='plane', 
           geo_effect_symbolsize=10,  
           geo_effect_color='#7FFFD4',
           geo_effect_traillength=0.1,
           label_color=['#FFA500', '#FFF68F'],
           border_color='#97FFFF', 
           geo_normal_color='#36648B', 
           label_formatter="{b}", 
           is_legend_show=True,
           legend_pos = 'left',
           legend_selectdmode = 'single')  #單例模式
geolines.add('從東莞出發',     #圖例1名稱
       plotting_data,
       maptype='china',  
       geo_cities_coords=geo_cities_coords,
       **style_geolines)
geolines.add('回到東莞',      #圖例2名稱
       [('海口','東莞'),('拉薩','東莞'),('貴州','東莞'),('蘭州','東莞')],
       maptype='china', 
       geo_cities_coords=geo_cities_coords,
       **style_geolines)

如何實現pyecharts動態軌跡圖

看完上述內容,是不是對如何實現pyecharts動態軌跡圖有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐陵市| 丽江市| 商城县| 深泽县| 神农架林区| 钦州市| 志丹县| 太和县| 仙桃市| 哈巴河县| 边坝县| 柳江县| 姜堰市| 准格尔旗| 岳普湖县| 景德镇市| 鄂托克前旗| 九寨沟县| 广丰县| 灵台县| 苍山县| 水富县| 游戏| 富裕县| 宁陵县| 托里县| 晋州市| 青冈县| 临江市| 绥化市| 体育| 德钦县| 县级市| 石屏县| 三门峡市| 广饶县| 黄浦区| 宜兰市| 汝城县| 冀州市| 蒙山县|