Python使用folium excel绘制point

下面我来详细讲解“Python使用folium excel绘制point”的完整攻略。

准备工作

使用pip安装foliumpandasopenpyxl三个库,它们分别用于在地图上标记点、读取Excel文件和操作Excel文件。

pip install folium pandas openpyxl

示例一:从Excel文件中读取数据并绘制标记点

首先,我们需要创建一个空白的地图对象,并设置初始的中心点坐标和缩放级别。这里使用的是中国地图,中心点坐标为[35, 105],缩放级别为4

import folium

m = folium.Map(location=[35, 105], zoom_start=4)

接下来,我们使用pandas读取Excel文件中的数据,可以通过pd.read_excel()方法来读取,其中sheet_name参数是用于指定要读取的工作表名称,header参数是用于指定包含列名称的行号,usecols参数是用于指定要读取的列号。

import pandas as pd

df = pd.read_excel('data.xlsx', sheet_name='Sheet1', header=0, usecols=[0, 1, 2])

现在我们已经读取了Excel文件中的数据,接下来就是在地图上绘制标记点。这里使用的是Marker对象来绘制点,其中location参数是用于指定点的经纬度坐标,popup参数是用于指定鼠标悬停在点上时显示的文本信息。

for _, row in df.iterrows():
    folium.Marker(location=[row['latitude'], row['longitude']], popup=row['name']).add_to(m)

最后,展示地图并保存结果。

m.save('map.html')

示例二:从代码中构建数据并绘制标记点

除了从Excel文件中读取数据以外,我们还可以直接从代码中构建数据,并在地图上绘制标记点。首先,我们需要定义一个列表,其中包含多个字典,每个字典表示一个点的信息。

data = [
    {'name': '北京', 'latitude': 39.9042, 'longitude': 116.4074},
    {'name': '上海', 'latitude': 31.2304, 'longitude': 121.4737},
    {'name': '广州', 'latitude': 23.1291, 'longitude': 113.2644},
    {'name': '深圳', 'latitude': 22.5431, 'longitude': 114.0579},
    {'name': '杭州', 'latitude': 30.2741, 'longitude': 120.1551},
]

接下来,和示例一类似,我们创建一个空白的地图对象,设置中心点坐标和缩放级别。

m = folium.Map(location=[30, 110], zoom_start=5)

再创建一堆标记点,并将它们添加到地图上。

for point in data:
    folium.Marker(location=[point['latitude'], point['longitude']], popup=point['name']).add_to(m)

最后,展示地图并保存结果。

m.save('map.html')

这样,我们就完成了从Excel文件或代码中读取数据并在地图上绘制标记点的操作。完整代码可以参考下面的示例:

import folium
import pandas as pd

# 读取Excel文件
df = pd.read_excel('data.xlsx', sheet_name='Sheet1', header=0, usecols=[0, 1, 2])

# 构造数据
data = [
    {'name': '北京', 'latitude': 39.9042, 'longitude': 116.4074},
    {'name': '上海', 'latitude': 31.2304, 'longitude': 121.4737},
    {'name': '广州', 'latitude': 23.1291, 'longitude': 113.2644},
    {'name': '深圳', 'latitude': 22.5431, 'longitude': 114.0579},
    {'name': '杭州', 'latitude': 30.2741, 'longitude': 120.1551},
]

# 创建地图对象
m = folium.Map(location=[30, 110], zoom_start=5)

# 绘制标记点
for _, row in df.iterrows():
    folium.Marker(location=[row['latitude'], row['longitude']], popup=row['name']).add_to(m)

for point in data:
    folium.Marker(location=[point['latitude'], point['longitude']], popup=point['name']).add_to(m)

# 展示地图
m.save('map.html')

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用folium excel绘制point - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python实现简易计算器功能

    下面是“Python实现简易计算器功能”的完整攻略: 1. 准备工作 首先,需要在计算机上安装Python编程环境。可以从官网 https://www.python.org/downloads/ 下载稳定版本的Python,并按照提示进行安装。 2. 实现代码 接下来,打开文本编辑器或Python IDE,输入以下代码: def add(a, b): ret…

    python 2023年5月19日
    00
  • python dumps和loads区别详解

    Python dumps和loads区别详解 简介 在Python中,我们通常需要将数据序列化为JSON格式或其他格式的字符串以便于存储或传输,同时我们还需要将序列化后的字符串反序列化为原始数据类型,这两个过程可以用Python标准库中的json.dumps()和json.loads()函数来完成,但是在某些情况下,我们需要使用Python自带的pickle…

    python 2023年6月3日
    00
  • Python制作exe文件简单流程

    Python制作exe文件的简单流程如下: 步骤一:安装pyinstaller PyInstaller是Python程序的打包器,它能将Python程序打包成单个可执行文件,无需安装Python解释器。先使用pip安装pyinstaller: pip install pyinstaller 步骤二:编写Python程序 编写需要打包成exe文件的Python…

    python 2023年5月31日
    00
  • 基于Python制作一键桌面整理工具

    下面详细讲解一下基于Python制作一键桌面整理工具的完整攻略。 1. 定义需求 首先,我们需要明确这个工具的功能需求。假设我们的需求如下: 整理桌面上的文件夹和快捷方式,将其按照类型分类并放入相应的文件夹中。 文件分类的几个类别为文档、图片、音乐、视频和其他。 工具需要自动创建这些分类的文件夹,并将文件按照类型放入合适的文件夹中。 工具需要处理桌面上所有文…

    python 2023年6月3日
    00
  • Python drawContours 方法对应用的图像没有任何作用(OpenCV)

    【问题标题】:Python drawContours method does not anything on the image applied (OpenCV)Python drawContours 方法对应用的图像没有任何作用(OpenCV) 【发布时间】:2023-04-04 09:17:01 【问题描述】: 我正在尝试在我的测试图像周围绘制轮廓。我在…

    Python开发 2023年4月6日
    00
  • python3.x 生成3维随机数组实例

    生成3维随机数组实例可以通过使用numpy库中的random模块来实现。具体步骤如下: 1.导入numpy库和random模块 import numpy as np from numpy import random 2.使用random模块的randint函数生成指定维度和指定范围内的随机整数 arr = random.randint(low=0, high…

    python 2023年6月3日
    00
  • python3+telnetlib实现简单自动测试示例详解

    “python3+telnetlib实现简单自动测试”是一种基于Python3编程语言和telnetlib模块实现简单自动测试的方法。在实际生产和运维环境中,这种方法能够实现一定的效果和帮助。 该方法的主要思路是: 通过Python3编写测试脚本; 使用telnetlib模块建立telnet会话,并执行相关命令; 对返回的结果进行分析和处理; 输出测试结果或…

    python 2023年5月19日
    00
  • Python正则表达式 r'(.*) are (.*?) .*’的深入理解

    让我来详细讲解一下关于Python正则表达式 r'(.) are (.?) .*’的深入理解。 首先,我们需要了解正则表达式是什么。正则表达式是一种提供给计算机使用的字符串匹配模式,是一种强大的文本处理工具。它可以用来快速地匹配、验证、搜索和替换文本中的内容,较之手动处理文本的方式更为高效、便捷。 而Python正则表达式 r'(.) are (.?) .*…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部