博客
关于我
Python+可视化工具,如何才能做出优美的动态图表?
阅读量:630 次
发布时间:2019-03-14

本文共 2081 字,大约阅读时间需要 6 分钟。

用Python和Kepler.gl制作动态地图可视化

在本文中,我们将共同探讨如何利用Python和开源工具Kepler.gl轻松创建动态地图图表。作为经验丰富的地理可视化开发者,我将分享从数据准备到地图绘制的完整流程,并介绍如何优化地图视觉效果。以下内容基于真实的项目实践,所有代码均为实际操作结果所验证。

数据准备

首先,我们需要准备包含采购时间、采购单位以及采购金额的数据集。以下步骤将引导您完成数据处理过程:

  • 加载数据

    使用 pandas 导入数据集 cc.xls

    df = pd.read_excel('cc.xls', index=False)df.head()
  • 获取经纬度

    利用 geocode API 批量获取采购单位的经纬度信息。以下函数示范了如何调用高德地图的 REST API:

    def gaode(addr):    para = {        'key': '您的API秘钥',        'address': addr    }    url = 'https://restapi.amap.com/v3/geocode/geo?'    req = requests.get(url, para)    req = req.json()    if req['status'] == '1':        if len(req['geocodes']) > 0:            location = req['geocodes'][0]['location']            print(location)            return location    return ""

    应用函数获取经纬度字段:

    df['lat_lon'] = df['buyer'].apply(gaode)df.head()
  • 分列经纬度

    提取经纬度数据并存储为 CSV 文件:

    df["lat"] = df["lat_lon"].str.split(',', expand=True)[1]df["lon"] = df["lat_lon"].str.split(',', expand=True)[0]df = df.drop('lat_lon', axis=1)df.to_csv('cc.csv', index=False)
  • 数据可视化

    Kepler.gl 是一个功能强大的开源地图可视化工具,支持多种数据格式(如 CSV、GeoJSON 等)。以下是如何在 Jupyter notebook 中使用该工具进行数据可视化的详细步骤:

  • 安装依赖

    确保已安装最新版本的 kepler-gl 工具。建议使用 conda 进行安装:

    conda install kepler-gl
  • 加载地图和数据

    cc.csv 数据导入 Kepler.gl 中。数据支持多种图标设置,如以下示范:

    from kepler.gl import repertoirerep = repertoire.get_geo_dataasset('cc.csv')('经纬度数据')
  • 自定义地图样式

    根据需要调整图标设置、地图样式和坐标系:

    • 图标设置
      选择星号图标以突出分布热点区域:
      rep.icon_color = 'blue'rep.icon_size = 40
    • 地图样式
      可以设置地图背景样式,以增强视觉效果:
      rep.map_style = 'main'
  • 多地图层叠加

    如果需要,可以添加其他数据层如城市轮廓或交通网络:

    rep.add_layer(    layer_config={        'layer_type': 'city'})
  • 渲染结果

    使用 interactivemap 人工智能渲染工具优化地图展示效果:

    rep = interactivemap.from_repertoire(rep)
  • 在线可视化推荐网站

    如果您更喜欢在线操作,我们推荐以下镜像网站进行数据交互:

    http://map.guihuayun.com/

    操作步骤如下:

  • 上传数据

    在 web 界面中提取 cc.csv 文件并添加到地图中。

  • 设置参数

    • 图标设置:调整图标颜色和大小
    • 地图样式:选择适合主题的地图风格
    • 轮廓数据:从 DATAV.GeoAtlas 网站导入城市轮廓文件
  • 添加时间轴

    为了展示数据动态变化,可选添加时间轴功能,并根据需要调整轴的位置和样式。

  • 讨论与总结

    通过以上步骤,您成功将实时数据转化为动态地图图表。感谢您的耐心阅读和实践!如有疑问或建议,请随时联系我们。

    以下是一些有趣的扩展功能,您也可以尝试:

    • 热力图显示
      将区域热度可视化以直观突出分布中心。
    • 3D地图展示
      使用 Three.js 渲染为三维视角,呈现更深刻的地理信息。

    Kepler.gl 提供的便捷性和强大性能,使得创建高质量地图成为可能。无论是制作商业地图还是学术研究,Kepler.gl 都是理想的选择。

    想知道更多地图开发技巧不Artifact结束

    转载地址:http://vlioz.baihongyu.com/

    你可能感兴趣的文章
    Python scrapy 常见问题及解决 【遇到的坑】
    查看>>
    Python Seborn热图数据的动态更新
    查看>>
    Python Seborn绘制空白直方图
    查看>>
    Python Selenium - 获取href值
    查看>>
    Python Selenium实现自动化测试及Chrome驱动使用!
    查看>>
    Python Selenium搭建UI自动化测试框架
    查看>>
    Python Selenium模块详解
    查看>>
    Python selenium爬取影评生成词云图
    查看>>
    python selenium自动化测试报告
    查看>>
    Python selenium自动化测试框架实战 —— 登录测试案例
    查看>>
    Python Selenium设计模式 —— POM
    查看>>
    Python Serial:如何使用 read 或 readline 函数一次读取多个字符
    查看>>
    Python set([]) 如何检查两个对象是否相等?一个对象需要定义哪些方法来自定义它?
    查看>>
    Python setup.py:数据文件无法复制目录:不存在或不是常规文件
    查看>>
    Python setuptools sdist:仅安装版本化文件
    查看>>
    Python Shell下使用matplotlib
    查看>>
    Python Slice How-to,我知道Python Slice,但我怎么才能使用内置的Slice对象呢?
    查看>>
    python socket分包发送数据
    查看>>
    python socket模块_Python socket模块实现TCP服务端客户端
    查看>>
    Python SOCKS5代理客户端HTTPS
    查看>>