python怎么安装bokeh_Python如何使用bokeh包和geojson数据绘制地图
最近要绘制伦敦区地图,查阅了很多资料后最终选择使用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, figure
from bokeh.models import GeoJSONDataSource
# 读入英国地图数据并传给GeoJSONDataSource
with 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
这会自动打开浏览器,并显示英国地图。
运行结果如图:
获取伦敦地区数据
获取伦敦地区数据可以手动从united-kingdom.geo.json文件中筛选出伦敦的数据,也可以先用python先把数据过滤一遍,然后将数据传给bokeh。这需要对geojson文件格式有一定的了解,在此不详细介绍。
from bokeh.plotting import curdoc, figure
from bokeh.models import GeoJSONDataSource
import 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)
运行结果如图:
美化
上面的伦敦地图只是一个大概的轮廓,下面对地图添加一系列功能。
添加各区轮廓线
p.patches(xs='xs', ys='ys', fill_alpha=0.7, # 画轮廓线
line_color='white', # 线的颜色
line_width=0.5, # 线的宽度
source=geo_source)
python怎么安装bokeh_Python如何使用bokeh包和geojson数据绘制地图相关推荐
- python怎么安装bokeh_python怎么安装bokeh
Bokeh (Bokeh.js) 是一个Python交互式可视化库,支持现代化 Web 浏览器,提供非常完美的展示功能.Bokeh 的目标是使用 D3.js 样式提供优雅,简洁新颖的图形化风格,同时提 ...
- Python读取EXCEL省份数据绘制地图
文章目录 EXCEL数据表 读取 Excel 数据并绘图 EXCEL数据表 python操作excel主要用到 xlrd 和 xlwt 这两个库,即读写excel. 安装xlrd:在cmd窗口 pip ...
- python可视化操作(二)爬取湖北省统计局数据绘制excel表格
在这里写了一个比较简单的爬虫,爬取了湖北省统计局关于居民消费价格指数的一些简单信息,然后绘制成excel表格输出.一来是为了复习一下爬虫的简单知识,一是为了熟悉一下python操作excel的技术. ...
- Python爬虫之Selenium爬取途牛全国的酒店数据进行地图可视化
因为找不太到途牛的url规律,就只能慢慢爬取数据,由于页面加载的时间很慢,用一台电脑爬取4000+数据可能需要数小时,这里只是简单实现了每个城市的第一页数据,可以在这个基础上实现多个页面一起爬和强化翻 ...
- Python:安装dlib库
目录: 前言 问题描述 前言 本来安装各种库的方法,我已经写了好几种,甚至于也装上了anaconda 这种神器,但今天还是遇到了一个神奇的问题,因此,特地搜索学习了一下,在此感谢两位博主吧: pyth ...
- python怎么安装bokeh_安装Bokeh | 交互式数据可视化库Bokeh的安装
今天这部分主要给出更多关于Bokeh安装过程的细节. 依赖 Bokeh仅由CPython2.7和3.5+版本官方支持,其他Python版本可能以有限的功能运行(python是一种编程语言,使用c语言开 ...
- python怎么安装pandas模块-如何在Python 3中安装pandas包和使用数据结构
介绍 Python pandas包用于数据操作和分析,旨在让您以更直观的方式处理标记或关系数据. 基于numpy软件包构建,pandas包括标签,描述性索引,在处理常见数据格式和丢失数据方面特别强大. ...
- python包安装_Python及图像处理相关包安装
Python是一种面向对象的解释型计算机程序设计语言,其使用具有跨平台的特点,可以在Linux.macOS以及Windows系统中搭建环境并使用. Anaconda可以便捷获取包且对包能够进行管理,同 ...
- 如何检查python是否安装了pip_如何检测和删除通过pip安装的Python包?
问题描述 我使用pip而不是apt-get意外地将Python软件包安装到我的系统中.我这样做有两种方式: 使用较旧版本的virtualenv,我忘记在创建virtualenv时附加--no-site ...
最新文章
- C语言实现bmp图像几何变换(移动,旋转,镜像,转置,缩放)
- 两个函数式解决大数相加的方法
- python3-正则表达式基本使用方法(附案例)_python正则表达式
- MATLAB-M文件
- hdu 4362(单调队列优化dp)
- .Net Core开发日志——Peachpie
- [css] word-wrap、word-break和white-space有什么区别?
- gitlab服务器代码存储位置,gitlab 数据目录迁移
- [转载] application/json 四种常见的 POST 提交数据方式
- Python3 encode中的unicode-escape和raw_unicode_escape
- ubuntu 安装搜狗拼音输入法
- nginx Access日志格式
- Windows_01_Windows系统的中的32位和64位(System32和SysWOW64)
- 卡农c语言编程,c调卡农钢琴曲谱_卡农C大调钢琴谱(五线谱)
- 办公室文秘试题 计算机,办公室文秘实用计算机操作技巧
- 在线阅读Linux内核源代码
- 提高网站排名的5大因素
- 【机器学习】Unsupervised feature selection by regularized self-representation(RSR)
- python技术开发工程师证书查询_高级工程师证书查询系统
- 局域网助手_合同助手新增功能介绍
热门文章
- git命令出现fatal: Unable to create ‘xxx/.git/index:File exists
- 树状数组两种基本的模式
- 安装Ubuntu 16.04后要做的事
- python用可变参数求积_流畅的python读书笔记-第八章-对象引用、可变性和垃圾回收...
- jtag和swd区别,该用哪个?
- Redmi AC2100通过ssh安装Breed
- 使用腾讯云搭建一个专属自己的网络笔记本(Leanote)
- eNSP-配置路由器console接口密码与vty接口密码以及ftp服务
- 小程序踩坑日志(一)
- 去哪儿网抢票成功率怎么样?