日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Python如何使用bokeh包和geojson數據繪制地圖

瀏覽:38日期:2022-08-01 16:52:30

最近要繪制倫敦區地圖,查閱了很多資料后最終選擇使用bokeh包以及倫敦區的geojson數據繪制。bokeh是基于python的繪圖工具,可以繪制各種類型的圖表,支持geojson數據的讀取及繪制地圖。

安裝bokeh

$ pip install bokeh

軟件版本

python-3.7.7bokeh-2.0.0

數據來源

倫敦地圖數據來源于Highmaps地圖數據集。下載的是英國的地圖數據united-kindom.geo.json。需要對得到的數據進行預處理才能得到只含倫敦地區的數據。這需要對geojson數據的格式有一定的了解。在對數據進行處理之前,先看如何繪制英國地圖。

繪制英國地圖

from bokeh.plotting import curdoc, figurefrom bokeh.models import GeoJSONDataSource# 讀入英國地圖數據并傳給GeoJSONDataSourcewith open('united-kindom.geo.json', encoding='utf8') as f: geo_source = GeoJSONDataSource(geojson=f.read())# 設置一張畫布p = figure(width=500, height=500)# 使用patches函數以及geo_source繪制地圖p.patches(xs=’xs’, ys=’ys’, source=geo_source)curdoc().add_root(p)

上述代碼可以繪制出英國地圖。將上述代碼保存為test.py,在終端運行

$ bokeh serve --show test.py

這會自動打開瀏覽器,并顯示英國地圖。運行結果如圖:

Python如何使用bokeh包和geojson數據繪制地圖

獲取倫敦地區數據

獲取倫敦地區數據可以手動從united-kingdom.geo.json文件中篩選出倫敦的數據,也可以先用python先把數據過濾一遍,然后將數據傳給bokeh。這需要對geojson文件格式有一定的了解,在此不詳細介紹。

from bokeh.plotting import curdoc, figurefrom bokeh.models import GeoJSONDataSourceimport json# 用json庫讀取數據with open('united-kindom.geo.json', encoding='utf8') as f: data = json.loads(f.read())# 判斷是不是倫敦地區數據def isInLondon(district): if ’type’ in district[’properties’] and ’london borough’ in district[’properties’][’type’].lower(): return True if ’type-en’ in district[’properties’] and ’london borough’ in district[’properties’][’type’].lower(): return True if ’woe-name’ in district[’properties’] and ’city of london’ in district[’properties’][’woe-name’].lower(): return True return False# 過濾數據data[’features’] = list(filter(isInLondon, data[’features’]))#geo_source = GeoJSONDataSource(geojson=json.dumps(data))p = figure(width=500, height=500)p.patches(xs=’xs’, ys=’ys’, source=geo_source)curdoc().add_root(p)

運行結果如圖:

Python如何使用bokeh包和geojson數據繪制地圖

美化

上面的倫敦地圖只是一個大概的輪廓,下面對地圖添加一系列功能。

添加各區輪廓線

p.patches(xs=’xs’, ys=’ys’, fill_alpha=0.7, # 畫輪廓線 line_color=’white’, # 線的顏色 line_width=0.5, # 線的寬度 source=geo_source)

現在地圖區域輪廓很清晰。

添加顏色

# 為每一個地區增加一個color屬性for i in range(len(data[’features’])): data[’features’][i][’properties’][’color’] = [’blue’, ’red’, ’yellow’, ’orange’, ’gray’, ’purple’][i % 6]p.patches(xs=’xs’, ys=’ys’, fill_alpha=0.7, line_color=’white’, line_width=0.5, color='color', # 增加顏色屬性,這里的'color'對應每個地區的color屬性 source=geo_source)

現在地圖五顏六色。

增加圖注

import random# 隨機產生數據用于展示for i in range(len(data[’features’])): data[’features’][i][’properties’][’number’] = random.randint(0, 20_000)p = figure(width=500, height=500, tooltips='@name, number: @number' # 使用tooltips生成圖注,@+屬性名稱,這里的name是數據中原本有的,number是新近添加的。 )

現在鼠標放到區域上時,會顯示'區域名, number: 數字'。

去掉坐標軸與背景線

p.axis.axis_label = Nonep.axis.visible = Falsep.grid.grid_line_color = None

最終代碼

from bokeh.plotting import curdoc, figurefrom bokeh.models import GeoJSONDataSourceimport jsonimport randomwith open('united-kindom.geo.json', encoding='utf8') as f: data = json.loads(f.read())def isInLondon(district): if ’type’ in district[’properties’] and ’london borough’ in district[’properties’][’type’].lower(): return True if ’type-en’ in district[’properties’] and ’london borough’ in district[’properties’][’type’].lower(): return True if ’woe-name’ in district[’properties’] and ’city of london’ in district[’properties’][’woe-name’].lower(): return True return Falsedata[’features’] = list(filter(isInLondon, data[’features’]))for i in range(len(data[’features’])): data[’features’][i][’properties’][’color’] = [’blue’, ’red’, ’yellow’, ’orange’, ’gray’, ’purple’][i % 6] data[’features’][i][’properties’][’number’] = random.randint(0, 20_000)geo_source = GeoJSONDataSource(geojson=json.dumps(data))p = figure(width=500, height=500, tooltips='@name, number: @number')p.patches(xs=’xs’, ys=’ys’, fill_alpha=0.7, line_color=’white’, line_width=0.5, color='color', source=geo_source)p.axis.axis_label = Nonep.axis.visible = Falsep.grid.grid_line_color = Nonecurdoc().add_root(p)

倫敦地圖完成了

Python如何使用bokeh包和geojson數據繪制地圖

總結

最開始想用pyecharts做的,但是pyecharts并沒有倫敦的地圖。折騰半天,最后只好自己找geojson數據來畫地圖。

找到了很多關于地圖的數據和工具,比如上文中提到的highmap數據集,以及DataV.altas,這個工具可以可視化地提取中國區域的地圖數據,但感覺比起自己找數據,畫中國地圖還是pyecharts來得實在。

數據最重要。

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

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
先锋影音国产一区| 精品中文字幕一区二区三区四区| 国产成人免费| 欧美成人aaa| 国产精品久久久久久久免费软件 | 毛片不卡一区二区| 麻豆中文一区二区| 久久精品国产999大香线蕉| 久久99性xxx老妇胖精品| 美女国产精品久久久| 久久精品人人| 高清日韩中文字幕| 国产精品网址| 精品视频在线观看网站| 国产aⅴ精品一区二区三区久久| 高清一区二区三区av| 成人欧美一区二区三区的电影| 伊人久久视频| 蜜桃成人av| 国产精品美女| 日韩国产精品久久久久久亚洲| 欧美日韩视频免费看| 精品视频在线观看网站| 亚洲国产成人二区| 国内精品99| 免费在线观看一区二区三区| 在线成人直播| 日本欧洲一区二区| 日本成人中文字幕| 给我免费播放日韩视频| 蜜桃tv一区二区三区| 国产精品久久久久av电视剧| 日韩伦理福利| 亚洲国产福利| 亚洲少妇诱惑| 日本a口亚洲| 久久影院一区二区三区| 国产99久久| 亚洲tv在线| 久久精品亚洲一区二区| jiujiure精品视频播放| 亚洲一二av| 欧美私人啪啪vps| 欧美好骚综合网| av不卡在线看| 国产精品亚洲欧美一级在线| 丝袜美腿诱惑一区二区三区| 性色一区二区| 日韩av在线播放中文字幕| 久久久久久久久成人| 99久久久久国产精品| 一区二区三区午夜视频| 高清av一区| 中文字幕日韩亚洲| 精品国产第一福利网站| 亚洲综合丁香| 麻豆高清免费国产一区| 亚洲v在线看| 国产欧美日韩一区二区三区四区 | 日韩中文字幕一区二区三区| 国产精品主播| 狠狠爱成人网| 免费一级欧美片在线观看网站| 99久久夜色精品国产亚洲1000部| 69精品国产久热在线观看| 蜜桃精品在线| 亚洲精品日本| 136国产福利精品导航网址| 欧美亚洲国产日韩| 合欧美一区二区三区| 激情中国色综合| 日韩欧美精品一区二区综合视频| se01亚洲视频| 国产欧美日韩一区二区三区在线| 亚洲小说欧美另类婷婷| 国产精品任我爽爆在线播放| 99成人在线| 亚洲伦乱视频| 精品一区二区三区在线观看视频| 爽好多水快深点欧美视频| 97欧美在线视频| 日本一区中文字幕| 日韩视频在线一区二区三区| 国产精品精品国产一区二区| 欧美日韩一区二区高清| 国产精品腿扒开做爽爽爽挤奶网站| 精品国产亚洲一区二区三区在线| 免费在线观看一区二区三区| 欧美成a人免费观看久久| 国产福利一区二区三区在线播放| 美女精品网站| 亚洲精品一区二区在线看| 丝袜诱惑一区二区| 麻豆国产精品| 国产精品乱战久久久| 偷拍亚洲精品| 国产精品外国| 国产91一区| 亚洲成人一区在线观看| 国产福利91精品一区二区| 国产精品一区二区精品视频观看| 国产亚洲激情| 欧美午夜精彩| 成人免费电影网址| 国产一区精品福利| 精品一区二区三区中文字幕在线| 久久激五月天综合精品| 蜜臀久久久99精品久久久久久| 免费视频国产一区| 天堂中文在线播放| 理论片午夜视频在线观看| 麻豆国产精品777777在线| 欧美视频二区| 国产日产精品_国产精品毛片| 88久久精品| 欧美在线首页| 国产精品色婷婷在线观看| 国产欧美成人| 国产精品视频一区二区三区 | 黑丝一区二区| 伊人久久婷婷| 久久久亚洲欧洲日产| 国产欧美一区二区三区国产幕精品| 老牛国产精品一区的观看方式| 国产亚洲毛片在线| 免费视频最近日韩| 亚洲精品日本| 日本免费新一区视频| 奇米狠狠一区二区三区| 91精品一区| 国产精品xxx在线观看| 国产精品久久久久av蜜臀| 国产精品一区二区精品视频观看| 国产精品一区亚洲| 欧美国产免费| 日韩伦理一区| 婷婷激情图片久久| 综合国产精品| 欧美日韩调教| 丁香婷婷久久| 欧产日产国产精品视频| 91久久久精品国产| 综合国产精品| 国产精品传媒麻豆hd| 岛国精品一区| 久久精品亚洲人成影院| 91精品高清| 日韩极品在线观看| 老牛国内精品亚洲成av人片| 亚洲黄色免费看| 黄色国产精品| 日本久久一区| 国产精品99久久免费| 日韩av有码| 免费观看久久av| 色综合视频一区二区三区日韩 | 日韩av在线播放网址| 久久国产亚洲| 免费人成黄页网站在线一区二区| 国产一精品一av一免费爽爽| 国产一区丝袜| 欧美在线影院| 国产欧美二区| 久久亚洲国产| 日韩国产在线观看| 极品av在线| 国产午夜精品一区二区三区欧美 | 欧美gv在线| 亚洲视频电影在线| 精品国产a一区二区三区v免费| 欧美~级网站不卡| 日本aⅴ免费视频一区二区三区| 国产理论在线| 亚洲人妖在线| 精品国产免费人成网站| 亚洲午夜国产成人| 高清一区二区| 久久成人一区| 精品视频久久| 视频一区视频二区中文| 精品免费视频| 蜜桃伊人久久| 欧美激情另类| 日韩欧美中文字幕电影| 老牛影视精品| 四虎在线精品| 日韩高清不卡| 国产日韩免费| 亚洲一卡久久| 黄色欧美在线| 亚洲欧洲日韩| 四虎884aa成人精品最新| 亚洲3区在线| 日韩精品欧美| 国产黄色一区| 亚洲欧洲美洲国产香蕉| 久久人人88| 国产在线一区不卡| 日本aⅴ精品一区二区三区 | 久久99影视|