亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

基于Python繪制個人足跡地圖

瀏覽:20日期:2022-07-23 17:07:22

前言

前兩年,足跡地圖小程序風靡朋友圈,一時間大家都流行曬自己的旅行地圖。但是,筆者最近體驗了好幾款足跡地圖的小程序,發現這些小程序雖然號稱是足跡地圖,但最多只是展示到省級別,無法精確到市級別,因此,筆者周末花了點時間,用Python來繪制自己的個人足跡地圖,可以精確到市級別。

下面的部分,筆者將介紹如何簡單地來繪制個人足跡地圖。

首先我們需要安裝以下Python的第三方模塊:

echarts-china-cities-pypkg==0.0.9 echarts-china-provinces-pypkg==0.0.3 pyecharts==1.6.2PyYAML==5.3.1

本項目的完整結構如下:

基于Python繪制個人足跡地圖

  我們在項目中采用YAML文件來配置自己旅行過的省以及省下面的市,筆者的配置文件如下:

北京: - 延慶區 - 昌平區 - 海淀區 - 東城區 - 西城區 - 大興區 - 朝陽區上海: - 嘉定區 - 青浦區 - 松江區 - 寶山區 - 閔行區 - 奉賢區 - 浦東新區 - 崇明區 - 徐匯區 - 黃浦區 - 靜安區 - 楊浦區 - 虹口區 - 金山區 - 長寧區 - 普陀區天津: - 濱海新區 - 南開區 - 河西區 - 和平區河北: - 保定市 - 廊坊市山東: - 煙臺市 - 青島市江蘇: - 南京市 - 蘇州市 - 揚州市 - 鎮江市 - 無錫市浙江: - 杭州市 - 紹興市 - 寧波市 - 舟山市 - 湖州市 - 嘉興市 - 臺州市 - 金華市江西: - 南昌市 - 九江市安徽: - 黃山市湖北: - 武漢市湖南: - 長沙市海南: - 海口市 - 三亞市四川: - 成都市廣東: - 湛江市

 接著我們利用Python腳本來生成足跡地圖。先是全國地圖,用于顯示省和直轄市的情況,china_map.py的代碼如下:

g: utf-8 -*-# author: Jclian91# place: Pudong Shanghai# time: 2020/5/31 9:21 上午# 繪制個人足跡地圖:全國范圍import yamlfrom pyecharts.charts import Mapfrom pyecharts import options as opts# 省和直轄市with open('travel_config.yml', ’r’, encoding=’utf-8’) as ymlfile: province_city_dict = yaml.safe_load(ymlfile)province_dict = dict(zip(province_city_dict.keys(), [1]*len(province_city_dict.keys())))print(province_dict)# maptype=’china’ 只顯示全國直轄市和省級map = Map(init_opts=opts.InitOpts(width=’1200px’, height=’800px’))map.set_global_opts( title_opts=opts.TitleOpts(title='個人足跡地圖'), visualmap_opts=opts.VisualMapOpts(max_=1, is_piecewise=True, pieces=[ {'max': 1, 'min': 1, 'label': '去過', 'color': '#4EA397'}, {'max': 0, 'min': 0, 'label': '未去過', 'color': '#FFFFFF'}, ]) #最大數據范圍,分段 )map.add('個人足跡地圖', data_pair=province_dict.items(), maptype='china', is_roam=True)map.render(’全國.html’)

運行上述腳本,會生成全國.html。為了保證圖片居中顯示,我們對該HTML中的下面一行:

<div style='width:1200px; height:800px;'></div>

的樣式(style)增加如下內容:

margin:auto;top:30px

全國范圍的足跡地圖效果圖如下:

個人足跡地圖——全國

基于Python繪制個人足跡地圖

接著,我們來生成每個省市的足跡地圖,利用province_map.py腳本,代碼如下:

# -*- coding: utf-8 -*-# author: Jclian91# place: Pudong Shanghai# time: 2020/5/31 10:01 上午# 繪制個人足跡地圖:省市范圍import yamlfrom pyecharts.charts import Mapfrom pyecharts import options as opts# 省和直轄市下面的市with open('travel_config.yml', ’r’, encoding=’utf-8’) as ymlfile: province_city_dict = yaml.safe_load(ymlfile)for province, cities in province_city_dict.items(): map = Map(init_opts=opts.InitOpts(width=’1200px’, height=’800px’)) map.set_global_opts( title_opts=opts.TitleOpts(title='個人足跡地圖-%s' % province), visualmap_opts=opts.VisualMapOpts(max_=1, is_piecewise=True, pieces=[ {'max': 1, 'min': 1, 'label': '去過', 'color': '#4EA397'}, {'max': 0, 'min': 0, 'label': '未去過', 'color': '#FFFFFF'}, ]) #最大數據范圍,分段 ) city_dict = dict(zip(cities, [1]*len(cities))) map.add('個人足跡地圖-%s' % province, data_pair=city_dict.items(), maptype=province, is_roam=True) map.render(’./provinces/%s.html’ % province) print('生成個人足跡地圖-%s 成功' % province)

這時,會在provinces目錄下生成每個省或者直轄市的足跡地圖,我們分別對每個HTML進行修改,保證圖片居中。我們在這里只展示三個省市的情況:

個人足跡地區——海南

基于Python繪制個人足跡地圖

個人足跡地圖——江蘇

基于Python繪制個人足跡地圖

個人足跡地圖——浙江

基于Python繪制個人足跡地圖

最后一步,也是最為關鍵的一步,就是我們要打通全國足跡地圖和每個省市足跡地圖的聯系,也就是說,我們點擊全國足跡地圖上去過的省份,那么可以點擊進去查看該省市下的足跡地圖情況,比如說去過哪些市。

對此,我們修改生成的全國.html文件,假設該地圖的圖像句柄為chart_a438407081634ceab6af1c965034ae16,那么在最后的<script>對中添加內容如下:(確保點擊去過的省份,可以查看該省市的足跡地圖)

chart_a438407081634ceab6af1c965034ae16.on(’click’, function (param){ var selected = param.name;if (selected) { switch(selected){ case ’北京’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/北京.html'; break; case ’上海’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/上海.html'; break; case ’天津’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/天津.html'; break; case ’四川’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/四川.html'; break; case ’安徽’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/安徽.html'; break; case ’山東’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/山東.html'; break; case ’江蘇’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/江蘇.html'; break; case ’江西’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/江西.html'; break; case ’河北’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/河北.html'; break; case ’浙江’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/浙江.html'; break; case ’海南’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/海南.html'; break; case ’湖北’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/湖北.html'; break; case ’湖南’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/湖南.html'; break; case ’廣東’: location.href = 'http://www.aoyou183.cn/bcjs/provinces/廣東.html'; break; default: break; } } });

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲人精品 | 久久99热狠狠色一区二区 | 香蕉国产一区二区 | 久操香蕉| 国产xvideos在线观看 | 男女无遮挡边做边吃视频免费 | 亚洲六区 | 成人啪啪网站18 | 丝袜美女被出水视频一区 | 国外欧美一区另类中文字幕 | 欧美黑人换爱交换乱理伦片 | 麻豆果冻传媒精品二三区 | 999yy成年在线视频免费看 | 一级免费a| 青青热在线精品视频免费 | 中文字幕有码在线视频 | 亚洲视频黄色 | 国产精品无码专区在线观看 | 国产黄色在线视频 | 久久99精品久久久久久国产越南 | 加勒比色老久久爱综合网 | 在线免费观看亚洲视频 | 久久99精品久久只有精品 | 青青草国产免费一区二区 | 国产免费专区 | 日本一区欧美 | 国产视频资源在线观看 | 黄色a网| 欧美日韩国产在线人成dvd | 182tv精品视频在线播放 | 国产精品大尺度尺度视频 | 国产精品无码永久免费888 | 欧美日韩在线观看一区 | 黄色生活毛片 | 青草草产国视频 | 婷婷国产偷v国产偷v亚洲 | 中国护士一级毛片免费版本 | 亚洲一区二区三区高清不卡 | 一级毛片男女做受 | 欧美成人免费全部观看天天性色 | 大伊香蕉在线观看视频 wap |