Страницы

Поиск по вопросам

среда, 12 июня 2019 г.

визуализация траектории объекта: как добавить текст к точкам на графике

Подскажите пожалуйста как добавить подписи к меткам на траектории. Имеются данные с координатами буя и соответствующая им дата. На рисунке нужно указать даты обозначенных точек.
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 Вам надо будет подумать как отформатировать дату и время, чтобы они занимали меньше места и о том как уместить эти надписи на графике...

Комментариев нет:

Отправить комментарий