Подскажите пожалуйста как добавить подписи к меткам на траектории. Имеются данные с координатами буя и соответствующая им дата. На рисунке нужно указать даты обозначенных точек.
x,y=lon[1:],lat[1:]
plt.figure(figsize=(12,10))
ax = plt.axes(projection=ccrs.Mercator())
ax.set_extent((27.0, 42.0, 40.8, 47.5))
ax.add_feature(LAND)
ax.add_feature(OCEAN)
ax.add_feature(cfeature.BORDERS, linestyle=':')
ax.coastlines('50m')
ax.plot(x,y,'b-', transform=ccrs.Geodetic(), marker='o', markevery=10)
Ответ
Я бы воспользовался модулем Pandas:
Пусть у нас есть filename='/path/to/file.csv'
ts,lon,lat
03.07.2006 0:58,32.529,44.008
03.07.2006 3:13,32.51,44.012
03.07.2006 4:50,32.506,44.008
03.07.2006 12:26,32.473,44.01
читаем файл:
import pandas as pd
df = pd.read_csv(filename, sep=',', parse_dates=['ts'])
получим:
In [37]: df
Out[37]:
ts lon lat
0 2006-03-07 00:58:00 32.529 44.008
1 2006-03-07 03:13:00 32.510 44.012
2 2006-03-07 04:50:00 32.506 44.008
3 2006-03-07 12:26:00 32.473 44.010
рисуем точки:
In [38]: ax = df.plot.scatter(x='lon', y='lat')
добавляем надписи:
In [39]: df.apply(lambda x: ax.annotate(x.ts, (x.lon, x.lat)), axis=1)
Out[39]:
0 Annotation(32.529,44.008,'2006-03-07 00:58:00')
1 Annotation(32.51,44.012,'2006-03-07 03:13:00')
2 Annotation(32.506,44.008,'2006-03-07 04:50:00')
3 Annotation(32.473,44.01,'2006-03-07 12:26:00')
dtype: object
Результат:
PS Вам надо будет подумать как отформатировать дату и время, чтобы они занимали меньше места и о том как уместить эти надписи на графике...
Комментариев нет:
Отправить комментарий