利用pyecharts绘制地理散点图
目录
- 1.背景
- 2.效果图
- 3.完整代码
- 4.代码解读
1.背景 利用上海市7000+办公楼项目,包括项目名称,地理位置,每天的租金,建筑面积和项目所在的商圈,现在要让这些项目按经纬度落位到地图上去,并且按颜色显示租金的高低,之前比较多的事操作ArcGIS软件来做,这一次,准备试试pyecharts模块,直接用python脚本生成。
文章图片
2.效果图 效果图大致如下:
文章图片
3.完整代码
import pandas as pd #导入数据分析模块from pyecharts.charts import Geo #导入地理信息处理模块from pyecharts import options as opts#配置from pyecharts.render import make_snapshot #快照from snapshot_selenium import snapshot from pyecharts.globals import ChartType, SymbolType #全局配置data=https://www.it610.com/article/pd.read_excel("D:\数有引力\魔都商圈\办公项目.xlsx")#读取数据geo_sight_coord={data['项目名称'][i].strip(): [data['经度'][i], data['纬度'][i]] for i in range(len(data))} #构造位置字典数据data_pair=[(data['项目名称'][i].strip(), data['日租金'][i]) for i in range(len(data))] #构造项目租金数据g=Geo() #地理初始化g.add_schema(maptype="上海") #限定上海市范围for key, value in geo_sight_coord.items(): #对地理点循环g.add_coordinate(key, value[0], value[1]) #追加点位置g.add("", data_pair, symbol_size=2) #追加项目名称和租金g.set_series_opts(label_opts=opts.LabelOpts(is_show=False), type='scatter')#星散点图scatterpieces = [{'max': 3, 'label': '<3', 'color': '#00B2EE'},{'min': 3, 'max': 6, '3~6': 'love', 'color': '#71C671'},{'min': 6, 'max': 10, '6~10': 'always', 'color': '#CD4F39'},{'min': 10,'label': '10+', 'color': '#FF0000'} # 有下限无上限]g.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces=pieces), title_opts=opts.TitleOpts(title="办公项目分布")) #办公项目分布图make_snapshot(snapshot, g.render("上海市办公项目.html"), "上海市办公项目.png") #渲染成html格式和png格式
4.代码解读 整个流程包括pandas读取数据和处理,geo生成地图和向地图添加数据,渲染地图,这里主要介绍处理数据两点
1,项目名称,项目经度,项目纬度三个字段构成一个字典类型数据
geo_sight_coord={data['项目名称'][i].strip(): [data['经度'][i], data['纬度'][i]] for i in range(len(data))}
每个地理数据格式如下:
{"新桥大厦": 121.472534, 31.246122}
2,项目租金数据通过如下语句构造成元组
data_pair=[(data['项目名称'][i].strip(), data['日租金'][i]) for i in range(len(data))]
每个项目租金数据格式如下:
("新桥大厦": 4.3 )
【利用pyecharts绘制地理散点图】到此这篇关于利用pyecharts绘制地理散点图的文章就介绍到这了,更多相关pyecharts绘制散点图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 利用go实现mysql批量测试数据生成-TDG
- pyecharts实现数据可视化
- android源码学习-View绘制流程
- 如何利用Go语言实现LRU|如何利用Go语言实现LRU Cache
- 如何利用Python快速统计文本的行数
- 深入浅出PyTorch|热力图的关键(利用register_hook获取梯度)
- 【go-优化记录-01】随机数值优化策略
- bmaplib|bmaplib vue 调用_vue引入百度地图BMapGL,以及辅助工具BMapGLLib 的引入,BMapGL鼠标绘制功能。...
- 笔记|使用matplotlib绘制简单图表
- SpringBoot利用限速器RateLimiter实现单机限流的示例代码