我正在做一个学校项目,我们选择了一个数据集,并使用Python分析/呈现它。我选择了一个关于火山喷发的数据集,作为我项目的一部分,我想在Map上绘制所有火山喷发沿着构造板块边界,以显示它们如何相互关联。我目前的方法一直是找到一个组成板块边界的坐标列表,并尝试使用所示的方法将它们标绘在Map上here,但它似乎不太适用于我拥有的坐标量,以及与教程中的相比,我的Map缩小程度。我的坐标与Map不一致,并且它们似乎在y方向上稍微“拉伸”
x1c 0d1x和this是我的.csv文件的来源
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
long = []
lat = []
dtf = open("tp.csv", "r")
lines = dtf.readlines()
for row in lines[1:]:
vals = row.strip().split(",")
long.append(vals[2])
lat.append(vals[1])
while("" in long):
long.remove("")
while("" in lat):
lat.remove("")
for i in range(0, len(long)):
long[i]=float(long[i])
for i in range(0, len(lat)):
lat[i]=float(lat[i])
longvu = []
latvu = []
dtf = open("vulkanutbrudd kordinater.csv")
lines = dtf.readlines()
for row in lines[0:]:
vals = row.strip().split(";")
longvu.append(vals[1])
latvu.append(vals[0])
while("" in longvu):
long.remove("")
while("" in latvu):
lat.remove("")
for i in range(0, len(longvu)):
longvu[i]=float(longvu[i])
for i in range(0, len(latvu)):
latvu[i]=float(latvu[i])
long.insert(0,-180)
long.insert(1,180)
lat.insert(0,-90)
lat.insert(1,90 )
BBox = [min(long), max(long), min(lat), max(lat)]
kart = plt.imread("map.png")
fig, ax = plt.subplots(figsize = (8,7))
ax.scatter(long, lat, zorder=1, alpha= 0.2, c='b', s=1)
ax.set_xlim(BBox[0],BBox[1])
ax.set_ylim(BBox[2],BBox[3])
ax.set_xlim(-180.00, 180.00)
ax.set_ylim(-90.00,90.00)
ax.imshow(kart,zorder=0, extent = BBox, aspect= 'auto')
plt.show()
dtf.close()
以上是我写的代码到目前为止。“vulkanutbrudd”是火山爆发和longvu和latvu是我还没有得到使用的火山爆发的坐标。im开放使用工具,除了python以及
1条答案
按热度按时间z0qdvdin1#
如果你还在寻找python-package...看看EOmaps!
您可以像这样绘制数据点: