iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用python绘制精美地图海报
  • 630
分享到

怎么用python绘制精美地图海报

2023-06-29 05:06:45 630人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下怎么用python绘制精美地图海报的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 简介Python库

今天小编给大家分享一下怎么用python绘制精美地图海报的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    1 简介

    Pythonprettymaps非常的有趣,基于它,我们只需要简单的代码就可以对地球上给定坐标和范围的任意地区进行地图可视化

    2 利用prettymaps快速制作海报级地图

    遗憾的是prettymaps暂时还不能通过pipconda直接进行安装,但可以利用pip配合git源码仓库进行安装,对于国内的用户来说,可以使用下面的语句从GitHub的镜像地址快速安装:

    pip install git+https://hub.fastgit.org/marceloprates/prettymaps.git

    安装完成后,如果下面的语句执行无误,那么恭喜你已经安装完成:

    from prettymaps import *

    2.1 prettymaps的几种使用方式

    prettymaps无需用户自行准备数据,会根据用户设定的坐标和范围大小来自动从OpenStreetMap上获取相应范围内的矢量数据作为绘图素材,主要有以下几种使用方式:

    2.1.1 圆形模式

    prettymaps中最简单的绘图模式为「圆形模式」,我们只需要传入中心点经纬度坐标,以及半径范围(单位:米)即可,下面的例子来自官方示例程序,我将其地点换成以上海外滩为中心向外2500米范围:

    from prettymaps import *from matplotlib import pyplot as plt # 创建图床fig, ax = plt.subplots(figsize = (12, 12), constrained_layout = True) layers = plot(    (31.23346, 121.492154), # 圆心坐标,格式:(纬度, 经度)    radius = 2500, # 半径    ax = ax, # 绑定图床    layers = {        'perimeter': {}, # 控制绘图模式,{}即相当于圆形绘图模式        # 下面的参数用于定义从OsmStreetMap选择获取的矢量图层要素,不了解的无需改动照搬即可        'streets': {            'custom_filter': '["highway"~"motorway|trunk|primary|secondary|tertiary|residential|service|unclassified|pedestrian|footway"]',            'width': {                'motorway': 5,                'trunk': 5,                'primary': 4.5,                'secondary': 4,                'tertiary': 3.5,                'residential': 3,                'service': 2,                'unclassified': 2,                'pedestrian': 2,                'footway': 1,            }        },        'building': {'tags': {'building': True, 'landuse': 'construction'}, 'uNIOn': False},        'water': {'tags': {'natural': ['water', 'bay']}},        'green': {'tags': {'landuse': 'grass', 'natural': ['island', 'wood'], 'leisure': 'park'}},        'forest': {'tags': {'landuse': 'forest'}},        'parking': {'tags': {'amenity': 'parking', 'highway': 'pedestrian', 'man_made': 'pier'}}    },    # 下面的参数用于定义OpenStreetMap中不同矢量图层的样式,嫌麻烦的直接照抄下面的官方示例即可    drawing_kwargs = {        'background': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'hatch': 'ooo...', 'zorder': -1},        'perimeter': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'lw': 0, 'hatch': 'ooo...',  'zorder': 0},        'green': {'fc': '#D0F1BF', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},        'forest': {'fc': '#64B96A', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},        'water': {'fc': '#a1e3ff', 'ec': '#2F3737', 'hatch': 'ooo...', 'hatch_c': '#85c9e6', 'lw': 1, 'zorder': 2},        'parking': {'fc': '#F2F4CB', 'ec': '#2F3737', 'lw': 1, 'zorder': 3},        'streets': {'fc': '#2F3737', 'ec': '#475657', 'alpha': 1, 'lw': 0, 'zorder': 3},        'building': {'palette': ['#FFC857', '#E9724C', '#C5283D'], 'ec': '#2F3737', 'lw': .5, 'zorder': 4},    },     osm_credit = {'color': '#2F3737'}) # 导出图片文件plt.savefig('上海外滩-圆形模式.png', dpi=500)

    怎么用python绘制精美地图海报

    2.1.2 圆角矩形模式

    除了上述的「圆形模式」之外,prettymaps中还可以使用「圆角矩形模式」,同样需要定义中心点坐标和半径,接着为参数layers下的每个键值对添加键值对{'circle': False, 'dilate': 圆角半径}即可,其中圆角半径为数值型,这次我们换一个地方,以故宫为例,半径选择600米:

    # 创建图床fig, ax = plt.subplots(figsize = (12, 12), constrained_layout = True) dilate = 100 layers = plot(    (39.91645697864148, 116.39077532493388), # 圆心坐标,格式:(纬度, 经度)    radius = 600, # 半径    ax = ax, # 绑定图床    layers = {        'perimeter': {'circle': False, 'dilate': dilate}, # 控制绘图模式,{}即相当于圆形绘图模式        # 下面的参数用于定义从OsmStreetMap选择获取的矢量图层要素,不了解的无需改动照搬即可        'streets': {            'custom_filter': '["highway"~"motorway|trunk|primary|secondary|tertiary|residential|service|unclassified|pedestrian|footway"]',            'width': {                'motorway': 5,                'trunk': 5,                'primary': 4.5,                'secondary': 4,                'tertiary': 3.5,                'residential': 3,                'service': 2,                'unclassified': 2,                'pedestrian': 2,                'footway': 1,            },            'circle': False, 'dilate': dilate        },        'building': {'tags': {'building': True, 'landuse': 'construction'}, 'union': False, 'circle': False, 'dilate': dilate},        'water': {'tags': {'natural': ['water', 'bay']}, 'circle': False, 'dilate': dilate},        'green': {'tags': {'landuse': 'grass', 'natural': ['island', 'wood'], 'leisure': 'park'}, 'circle': False, 'dilate': dilate},        'forest': {'tags': {'landuse': 'forest'}, 'circle': False, 'dilate': dilate},        'parking': {'tags': {'amenity': 'parking', 'highway': 'pedestrian', 'man_made': 'pier'}, 'circle': False, 'dilate': dilate}    },    # 下面的参数用于定义OpenStreetMap中不同矢量图层的样式,嫌麻烦的直接照抄下面的官方示例即可    drawing_kwargs = {        'background': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'hatch': 'ooo...', 'zorder': -1},        'perimeter': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'lw': 0, 'hatch': 'ooo...',  'zorder': 0},        'green': {'fc': '#D0F1BF', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},        'forest': {'fc': '#64B96A', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},        'water': {'fc': '#a1e3ff', 'ec': '#2F3737', 'hatch': 'ooo...', 'hatch_c': '#85c9e6', 'lw': 1, 'zorder': 2},        'parking': {'fc': '#F2F4CB', 'ec': '#2F3737', 'lw': 1, 'zorder': 3},        'streets': {'fc': '#2F3737', 'ec': '#475657', 'alpha': 1, 'lw': 0, 'zorder': 3},        'building': {'palette': ['#FFC857', '#E9724C', '#C5283D'], 'ec': '#2F3737', 'lw': .5, 'zorder': 4},    },     osm_credit = {'color': '#2F3737'}) # 导出图片文件plt.savefig('北京故宫-圆角矩形模式.png', dpi=500)

    怎么用python绘制精美地图海报

    2.1.3 添加文字内容

    有了这样美观大方的艺术地图,我们还可以基于matplotlib中自定义字体的方法,在地图上添加标注信息,仍然以上海外滩为例,我们利用外部的书法字体,在正中心绘制文字标注信息:

    import matplotlib.font_manager as fm # 创建图床fig, ax = plt.subplots(figsize = (12, 12), constrained_layout = True) layers = plot(    (31.23346, 121.492154), # 圆心坐标,格式:(纬度, 经度)    radius = 2500, # 半径    ax = ax, # 绑定图床    layers = {        'perimeter': {}, # 控制绘图模式,{}即相当于圆形绘图模式        # 下面的参数用于定义从OsmStreetMap选择获取的矢量图层要素,不了解的无需改动照搬即可        'streets': {            'custom_filter': '["highway"~"motorway|trunk|primary|secondary|tertiary|residential|service|unclassified|pedestrian|footway"]',            'width': {                'motorway': 5,                'trunk': 5,                'primary': 4.5,                'secondary': 4,                'tertiary': 3.5,                'residential': 3,                'service': 2,                'unclassified': 2,                'pedestrian': 2,                'footway': 1,            }        },        'building': {'tags': {'building': True, 'landuse': 'construction'}, 'union': False},        'water': {'tags': {'natural': ['water', 'bay']}},        'green': {'tags': {'landuse': 'grass', 'natural': ['island', 'wood'], 'leisure': 'park'}},        'forest': {'tags': {'landuse': 'forest'}},        'parking': {'tags': {'amenity': 'parking', 'highway': 'pedestrian', 'man_made': 'pier'}}    },    # 下面的参数用于定义OpenStreetMap中不同矢量图层的样式,嫌麻烦的直接照抄下面的官方示例即可    drawing_kwargs = {        'background': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'hatch': 'ooo...', 'zorder': -1},        'perimeter': {'fc': '#F2F4CB', 'ec': '#dadbc1', 'lw': 0, 'hatch': 'ooo...',  'zorder': 0},        'green': {'fc': '#D0F1BF', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},        'forest': {'fc': '#64B96A', 'ec': '#2F3737', 'lw': 1, 'zorder': 1},        'water': {'fc': '#a1e3ff', 'ec': '#2F3737', 'hatch': 'ooo...', 'hatch_c': '#85c9e6', 'lw': 1, 'zorder': 2},        'parking': {'fc': '#F2F4CB', 'ec': '#2F3737', 'lw': 1, 'zorder': 3},        'streets': {'fc': '#2F3737', 'ec': '#475657', 'alpha': 1, 'lw': 0, 'zorder': 3},        'building': {'palette': ['#FFC857', '#E9724C', '#C5283D'], 'ec': '#2F3737', 'lw': .5, 'zorder': 4},    },     osm_credit = {'color': '#2F373700'}) # 添加文字标注ax.text(    0.5, 0.5,    '外滩, 上海',    zorder = 6,    ha='center',    va='center',    fontsize=120,    fontproperties = fm.FontProperties(fname='FZZJ-HLYHXSJW.TTF'),    transfORM=ax.transAxes) # 导出图片文件plt.savefig('上海外滩-添加文字标注.png', dpi=500)

    怎么用python绘制精美地图海报

     你可以找到你关注地点的经纬度坐标,尽情地绘制出各种艺术地图作品,譬如下面这些地标:

    怎么用python绘制精美地图海报

    怎么用python绘制精美地图海报

    怎么用python绘制精美地图海报

    以上就是“怎么用python绘制精美地图海报”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

    --结束END--

    本文标题: 怎么用python绘制精美地图海报

    本文链接: https://www.lsjlt.com/news/322654.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 怎么用python绘制精美地图海报
      今天小编给大家分享一下怎么用python绘制精美地图海报的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 简介Python库...
      99+
      2023-06-29
    • python分分钟绘制精美地图海报
      目录1 简介2 利用prettymaps快速制作海报级地图2.1 prettymaps的几种使用方式2.1.1 圆形模式2.1.2 圆角矩形模式2.1.3 添加文字内容结尾: 1 简...
      99+
      2024-04-02
    • 利用Python快速绘制海报地图
      目录利用Python快速绘制海报地图1 简介  2.1 prettymaps的几种使用方式2.1.1 圆形模式2.1.2 圆角矩形模式2.1.3 添加文字内容2 利用prettyma...
      99+
      2024-04-02
    • Python+folium绘制精美地图的示例详解
      目录1.准备工作2.关于folium.Map()3.内建地图底图样式4.多种第三方地图底图样式4.1.高德地图4.2.智图GeoQ4.3.腾讯地图4.4.天地图5.补充1. 准备工作...
      99+
      2024-04-02
    • Python+Plotly绘制精美的数据分析图
      目录1.准备2.使用3.保存4.其他功能Plotly 是目前已知的Python最强绘图库,它比上次我们讲的Echarts还强大许多许多,它的绘制通过生成一个web页面完成,并且支持调...
      99+
      2024-04-02
    • 如何利用Python快速绘制海报级别地图详解
      目录1 简介2 利用prettymaps快速制作海报级地图2.1 prettymaps的几种使用方式2.1.1 圆形模式2.1.2 圆角矩形模式2.1.3 添加文字内容总结1 简介 ...
      99+
      2024-04-02
    • 利用Seaborn绘制20个精美的pairplot图
      目录参数导入数据默认情况参数kind参数hue参数diag_kind参数palette参数markers参数height参数aspect参数corner参数vars参数-x_vars...
      99+
      2024-04-02
    • 使用Matplotlib怎么自定义颜色绘制精美统计图
      本篇文章为大家展示了使用Matplotlib怎么自定义颜色绘制精美统计图,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。自定义颜色在生活中,我们可能对色彩的搭配与审美有自己的偏好,因此,我们可能希望m...
      99+
      2023-06-15
    • Python怎么使用pyecharts绘制地理图表
      这篇文章主要讲解了“Python怎么使用pyecharts绘制地理图表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么使用pyecharts绘制地理图表”吧!3D炫酷地图模板系...
      99+
      2023-07-02
    • Flutter怎么用Canvas绘制精美表盘效果
      这篇“Flutter怎么用Canvas绘制精美表盘效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Flutter怎么用Ca...
      99+
      2023-06-29
    • python怎么绘制世界人口地图
      前言数据来源:population_data.json,先看一下数据长啥样[ { "Country Name": "Arab World", "Country Code&...
      99+
      2023-05-14
      Python
    • Python中怎么使用pyecharts绘制地理图表
      本篇内容介绍了“Python中怎么使用pyecharts绘制地理图表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!地图模板系列中国地图展示中...
      99+
      2023-07-02
    • 在报表工具中怎么使用echarts绘制地图
      本篇内容主要讲解“在报表工具中怎么使用echarts绘制地图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在报表工具中怎么使用echarts绘制地图”吧!1、数据准备连接数据源,新建报表,增加数...
      99+
      2023-06-04
    • Python绘制海龟图的方法是什么
      要在Python中绘制海龟图,可以使用turtle模块。turtle模块是Python标准库中的一个绘图工具,可以使用海龟图形来绘制...
      99+
      2024-04-02
    • 利用Python绘制酷炫的3D地图
      目录1.重庆市3D地图2.中国3D地图一3.中国3D地图二4.中国3D地图三5.地球展示之前我们介绍了很多Python地图可视化的内容,本次主要介绍如何Python绘制3D地图,还是...
      99+
      2024-04-02
    • 怎么用Python绘制散点图
      这篇文章主要讲解了“怎么用Python绘制散点图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python绘制散点图”吧!少废话,直接上代码 import matp...
      99+
      2023-06-29
    • python怎么实现turtle海龟绘图
      这篇“python怎么实现turtle海龟绘图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python怎么实现turtle...
      99+
      2023-06-30
    • 如何使用ECharts和golang轻松绘制精美的统计图表
      如何使用ECharts和golang轻松绘制精美的统计图表随着数据的不断积累和应用,统计图表已经成为了展示数据的一种重要方式。在该领域中,ECharts作为一款流行的开源JavaScript图表库,其功能强大、易用且支持大量样式和图表类型,...
      99+
      2023-12-18
      Golang echarts 统计图表
    • 如何在Python中使用folium绘制地图
      这期内容当中小编将会给大家带来有关如何在Python中使用folium绘制地图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、简介folium 建立在 Python 生态系统的数据应用能力和 Leafl...
      99+
      2023-06-15
    • python怎么绘制函数图
      在python中使用matplotlib模块和numpy模块绘制函数图,具体方法如下:import matplotlib.pyplot as pyplotimport numpyx=numpy.linspace(-10,10,20...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作