经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Echarts » 查看文章
利用pyecharts绘制地理散点图
来源:jb51  时间:2022/3/7 12:36:55  对本文有异议

1.背景

利用上海市7000+办公楼项目,包括项目名称,地理位置,每天的租金,建筑面积和项目所在的商圈,现在要让这些项目按经纬度落位到地图上去,并且按颜色显示租金的高低,之前比较多的事操作ArcGIS软件来做,这一次,准备试试pyecharts模块,直接用python脚本生成。

2.效果图

效果图大致如下:

3.完整代码

  1. import pandas as pd #导入数据分析模块
  2. from pyecharts.charts import Geo #导入地理信息处理模块
  3. from pyecharts import options as opts ?#配置
  4. from pyecharts.render import make_snapshot #快照
  5. from snapshot_selenium import snapshot?
  6. from pyecharts.globals import ChartType, SymbolType #全局配置
  7.  
  8. data=pd.read_excel("D:\数有引力\魔都商圈\办公项目.xlsx") ?#读取数据
  9. geo_sight_coord={data['项目名称'][i].strip(): [data['经度'][i], data['纬度'][i]] for i in range(len(data))} #构造位置字典数据
  10. data_pair=[(data['项目名称'][i].strip(), data['日租金'][i]) for i in range(len(data))] #构造项目租金数据
  11.  
  12. g=Geo() #地理初始化
  13. g.add_schema(maptype="上海") #限定上海市范围
  14. for key, value in geo_sight_coord.items(): #对地理点循环
  15. ? ? g.add_coordinate(key, value[0], value[1]) #追加点位置
  16.  
  17. g.add("", data_pair, symbol_size=2) #追加项目名称和租金
  18. g.set_series_opts(label_opts=opts.LabelOpts(is_show=False), type='scatter') ?#星散点图scatter
  19.  
  20. pieces = [
  21. ? ? ? ? {'max': 3, 'label': '<3', 'color': '#00B2EE'},
  22. ? ? ? ? {'min': 3, 'max': 6, '3~6': 'love', 'color': '#71C671'},
  23. ? ? ? ? {'min': 6, 'max': 10, '6~10': 'always', 'color': '#CD4F39'},
  24. ? ? ? ? {'min': 10, ?'label': '10+', 'color': '#FF0000'} # 有下限无上限
  25. ? ? ? ? ?]
  26.  
  27. g.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_piecewise=True, pieces=pieces), title_opts=opts.TitleOpts(title="办公项目分布")) #办公项目分布图
  28.  
  29. make_snapshot(snapshot, g.render("上海市办公项目.html"), "上海市办公项目.png") #渲染成html格式和png格式

4.代码解读

整个流程包括pandas读取数据和处理,geo生成地图和向地图添加数据,渲染地图,这里主要介绍处理数据两点

1,项目名称,项目经度,项目纬度三个字段构成一个字典类型数据

  1. geo_sight_coord={data['项目名称'][i].strip(): [data['经度'][i], data['纬度'][i]] for i in range(len(data))}?

每个地理数据格式如下:

  1. {"新桥大厦": 121.472534, 31.246122}

2,项目租金数据通过如下语句构造成元组

  1. data_pair=[(data['项目名称'][i].strip(), data['日租金'][i]) for i in range(len(data))]

每个项目租金数据格式如下:

  1. ("新桥大厦": 4.3 )
  2.  

到此这篇关于利用pyecharts绘制地理散点图的文章就介绍到这了,更多相关pyecharts绘制散点图内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号