【发布时间】:2018-08-10 19:25:34
【问题描述】:
我已经创建了一张地图,并且正在将经纬度坐标的 CSV 文件读入 Pandas DataFrame。在读取 DataFrame 后,我已经成功地使用“for”循环绘制了多个大弧线。
当将一组新坐标添加到 CSV 时,将绘制一条新的大弧。
但是,一旦坐标被删除,我无法弄清楚如何删除一个大弧。这条线只是停留在地图上。
如何在每次更新 CSV 时删除所有旧线条并重新绘制线条?我只想查看当前包含在 CS 中的行。
CSV 包含以下内容:
sourcelon sourcelat destlon destlat
50.44 30.51 -80.84 35.22
52.52 13.4 -80.84 35.22
43.18 -22.97 -80.84 35.22
44.1 -15.97 -80.84 35.22
55.44 30.51 -80.84 35.22
最少的代码如下:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import matplotlib.animation
# setup mercator map projection.
fig = plt.figure(figsize=(27, 20))
m = Basemap(projection='mill', lon_0=0)
m.drawcoastlines(color='r', linewidth=1.0)
def animate(i):
df = pd.read_csv('c:/python/scripts/test2.csv', sep='\s*,\s*',header=0, encoding='ascii', engine='python'); df
for x,y,z,w in zip(df['sourcelon'], df['sourcelat'], df['destlon'], df['destlat']):
line, = m.drawgreatcircle(x,y,z,w,color='r')
ani = matplotlib.animation.FuncAnimation(fig, animate, interval=1000)
plt.tight_layout()
plt.show()
【问题讨论】:
标签: python pandas animation matplotlib