首先,在使用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技术站