python-3.x - 图/照片的第二个标题是 CSV 中列的值,但只有最后一个值用于所有照片
问题描述
我有一个脚本,可以制作一张显示底图和地震发生地点的照片。所以1地震,1张照片。每个地块的第二个标题应该是地震的日期。但是,所有照片中仅使用最后一个值,即“2020-04-10”。
from shapely.geometry import Point
from geopandas import GeoDataFrame
import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt
import os
os.chdir(r'path')
def plotPoint():
df = pd.read_csv('earthquakes.csv')
basemap = gpd.read_file('basemap.shp')
crs = "epsg:32651"
geometry = gpd.points_from_xy(df.Longitude, df.Latitude)
gdf = GeoDataFrame(df, crs=crs, geometry=geometry)
for d in df['Date'].values:
date = d
for i in range(gdf.shape[0]):
ax = basemap.plot(figsize=(15,10))
ax.axis('off')
g = gdf.iloc[i].geometry
plt.plot(g.x, g.y, marker='o', color='red', markersize=15)
title = 'Earthquakes in the ___ from 2008 to 2020'
dateInfo = str(date)
plt.suptitle(title)
plt.title(dateInfo)
plt.savefig("earthquake_{0}.png".format(i))
plotPoint()
获取“日期”列的值
for i in df['Date'].values:
print(i)
结果
2020-04-22
2020-04-22
2020-04-21
2020-04-18
2020-04-10
CSV 样本
Latitude,Longitude,Date,Time_UTC,Depth,Depth Type,Magnitude Type,Magnitude,Region Name,Last Update,Eqid,unknown field
13.81,121.1,2020-04-22,03:19:57,10,f,mb,4.5,MINDORO, PHILIPPINES,2020-04-28 23:17,850323
13.76,120.92,2020-04-22,02:36:19,10, , M,4.2,MINDORO, PHILIPPINES,2020-04-22 03:50,850325
10.45,125.2,2020-04-21,21:43:05,10,f,mb,4.7,LEYTE, PHILIPPINES,2020-04-21 22:55,850252
6.69,125.23,2020-04-18,15:22:16,32, , M,3.6,MINDANAO, PHILIPPINES,2020-04-18 15:35,849329
5.65,126.54,2020-04-10,18:45:49,80, ,Mw,5.2,MINDANAO, PHILIPPINES,2020-04-11 06:41,846838
解决方案
更改了您的代码,您正在使用来自不同 for 循环的日期,这就是为什么它只选择最后一个日期,您也可以使用 Date fromgdf
我猜:
# for d in df['Date'].values:
# date = d
for i in range(gdf.shape[0]):
ax = basemap.plot(figsize=(15,10))
ax.axis('off')
g = gdf.iloc[i].geometry
plt.plot(g.x, g.y, marker='o', color='red', markersize=15)
title = 'Earthquakes in the ___ from 2008 to 2020'
# Added this line
date = gdf.iloc[i]['Date']
dateInfo = str(date)
plt.suptitle(title)
# Changed this line
plt.title(dateInfo)
plt.savefig("earthquake_{0}.png".format(i))
plt.show()
推荐阅读
- javascript - Mongoose Schema 的属性未定义
- webserver - 无法从同一网络中的另一台计算机/移动设备访问 NancyHost 服务器
- performance - 有一个表或一个对象更有效吗?
- python - 将长度为 n 的字符串转换为 nx len(alphabet) 的矩阵
- python - 在python中对等价的图片进行分组
- android - 如何设置用户已选择的搜索栏值
- javascript - 如何测试 bcrypt 比较功能?
- mongoose - 如何在猫鼬模式中正确声明数组?
- vue.js - 处理 nuxt js 中重复部分的最佳方法是什么?
- google-bigquery - Google Big Query 以一种方式访问数据集,但不能以另一种方式访问数据集