Python关于excel和shp的使用在matplotlib

首先,在使用Python进行可视化时,对于一些需要矢量数据的操作,比如利用地理信息系统(GIS)来绘制图表时,我们需要用到一些文件格式,比如Excel(.xlsx)和SHP(shapefile)。在这个示例教程中,我们将讲解如何在matplotlib中使用这些文件,帮助读者更好地了解Python数据可视化的知识。下面是一些具体的步骤:

1.准备数据

首先,我们需要准备一些我们要用到的数据,这里我们选择了一个Excel文件和一个SHP文件,并利用pandas和geopandas库进行读取和操作。以下是快速读入的示例代码:

import pandas as pd
import geopandas as gpd

# 读取Excel文件
df = pd.read_excel('data.xlsx')

# 读取SHP文件
gdf = gpd.read_file('data.shp')

2.绘制简单的图表

接下来,我们将使用matplotlib来绘制这些数据的图表,首先我们将绘制一个散点图。以下是示例代码:

import matplotlib.pyplot as plt

# 绘制散点图
plt.scatter(df['x'], df['y'], c=df['z'], cmap='Reds')
plt.colorbar()
plt.show()

上述代码中,我们使用了scatter()函数来绘制散点图,其中x、y坐标对应df数据框的列。点的颜色由df数据框中的另一列z来决定,利用cmap参数进行可视化。

3.绘制地图

接下来,我们将使用读入的SHP文件来绘制地图,以下是一个简单的示例代码:

# 绘制地图
gdf.plot(column='name')
plt.show()

在上述代码中,我们使用了geopandas库中的plot()函数来绘制地图,其中column参数指定了列名,根据该列对数据进行着色。

4.绘制带标签的地图

最后,我们将使用Matplotlib增强版Basemap库来创建带标签的地图。以下是示例代码:

import numpy as np
from mpl_toolkits.basemap import Basemap

# 创建地图
fig = plt.figure(figsize=(8, 8))
m = Basemap(projection='lcc', lat_0=39, lon_0=117,
            width=7000000, height=7000000, resolution='l')

m.shadedrelief()
m.drawcoastlines(color='gray')
m.drawcountries(color='gray')
m.drawstates(color='gray')

# 标注数据
for index, row in gdf.iterrows():
    x, y = m(row.geometry.centroid.x, row.geometry.centroid.y)
    plt.text(x, y, row['name'], fontsize=8, ha='center', va='center')

plt.show()

在上述示例代码中,我们使用了Basemap库中的Basemap()函数初始化一个地图。然后,我们在地图上添加了一些杂项,比如国土、州界和海岸线等。接下来,使用gdf.iterrows()循环遍历SHP中的数据表格,并在每个数据的中心位置添加标签。

注意:由于此库在 matplotlib 3.3.3 及以上版本中已不再被支持,本示例仅作为基于Basemap的Python地图可视化的参考方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python关于excel和shp的使用在matplotlib - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • python实现Excel多行多列的转换的示例

    下面我将介绍如何用 Python 实现 Excel 多行多列的转换示例,包括以下内容: 安装必要的库 读取Excel文件数据 转换Excel文件数据 写入转换后数据到新的Excel文件中 以下是完整实例教程: 1. 安装必要的库 这个程序需要用到 pandas 和 openpyxl 库,所以需要先安装: pip install pandas openpyxl…

    python 2023年5月13日
    00
  • Python学习之字符串常用操作详解

    Python学习之字符串常用操作详解 在Python中,字符串是一个非常常用的数据类型。在操作字符串时,我们需要掌握一些常用的操作方法,这样才能更加高效地完成任务。 一、字符串的基本操作 1. 字符串长度 通过使用len()函数可以获取字符串的长度,即字符串中字符的个数。 string = "Hello, World!" print(le…

    python 2023年6月5日
    00
  • 构建 python 可执行文件(在 wxWidgets 中)以便可以从另一个 wxWidgets 应用程序调用它的正确方法?

    【问题标题】:Correct way to build python executable(in wxWidgets) so that it can be called from another wxWidgets application?构建 python 可执行文件(在 wxWidgets 中)以便可以从另一个 wxWidgets 应用程序调用它的正确方…

    Python开发 2023年4月8日
    00
  • 一起来看看python的装饰器代码

    为了更好地讲解“一起来看看Python的装饰器代码”的完整攻略,我将脚本分为几个部分:介绍装饰器的概念、装饰器的语法、装饰器的作用、示例1:打印函数执行时间、示例2:验证用户权限功能。 介绍装饰器的概念 装饰器是Python的一种高级语法,它可以改变函数的运行时行为,而无需修改该函数的源代码。装饰器函数是一个接收一个函数作为参数并返回一个函数的函数。在调用装…

    python 2023年5月31日
    00
  • 关于Python元祖,列表,字典,集合的比较

    Python元组、列表、字典、集合的比较 在Python中,元组、列表、字典、集合是常用的数据结构。它们各自有不同的特点和用途,本文将详细讲解它们的比较。 元组 元组是Python中的一种不可变序列,它可以存储任意类型的数据。元组的元素不能被修改、添加或删除,因此它们通常用于存储不可变的数据,例如日期、时间、坐标等。 下面是一个元组的示例: # 示例1:定义…

    python 2023年5月13日
    00
  • Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例

    下面就来详细讲解如何实现Python3监控Windows和Linux系统的CPU、硬盘、内存使用率和各个端口的开启情况的完整攻略。 一、监控CPU、内存、硬盘 1. 安装psutil模块 psutil是一个跨平台的库,可以方便地实现对系统的各项性能指标的获取,如CPU、内存、硬盘等。在Python3中使用pip安装即可。 pip3 install psuti…

    python 2023年5月30日
    00
  • 查找NumPy数组中一个序列的出现次数

    查找NumPy数组中一个序列的出现次数可以通过NumPy包中的函数来实现。具体步骤如下: 导入NumPy包 import numpy as np 创建一个NumPy数组 a = np.array([1, 2, 3, 4, 5, 2, 3, 1, 2]) 创建一个要查找的序列 seq = np.array([1, 2]) 使用NumPy包中的frombuffe…

    python-answer 2023年3月25日
    00
  • python教程命名元组示例分析

    下面是详细讲解“python教程命名元组示例分析”的完整攻略。 一、前言 本文将分析Python官方教程中的命名元组示例,帮助大家更好地理解和运用命名元组这个数据类型。 二、什么是命名元组? 命名元组是Python中collections模块提供的一个数据类型。它是一个内置tuple子类,与普通元组相比增加了属性名,更易于阅读和维护。命名元组的定义方式类似于…

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