Chciałbym narysować trajektorię na mapie bazowej i mieć etykiety krajów (nazwy) pokazane jako nakładka.Etykiety krajów na mapie bazowej
Oto aktualny kod, a mapa produkuje:
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
path = "path\\to\\data"
animal_data = pd.DataFrame.from_csv(path, header=None)
animal_data.columns = ["date", "time", "gps_lat", "gps_long"]
# data cleaning omitted for clarity
params = {
'projection':'merc',
'lat_0':animal_data.gps_lat.mean(),
'lon_0':animal_data.gps_long.mean(),
'resolution':'h',
'area_thresh':0.1,
'llcrnrlon':animal_data.gps_long.min()-10,
'llcrnrlat':animal_data.gps_lat.min()-10,
'urcrnrlon':animal_data.gps_long.max()+10,
'urcrnrlat':animal_data.gps_lat.max()+10
}
map = Basemap(**params)
map.drawcoastlines()
map.drawcountries()
map.fillcontinents(color = 'coral')
map.drawmapboundary()
x, y = map(animal_data.gps_long.values, animal_data.gps_lat.values)
map.plot(x, y, 'b-', linewidth=1)
plt.show()
Powoduje mapie:
To jest mapa z toru o migracji ptaków. Chociaż jest to bardzo ładna mapa (!), Potrzebuję oznaczeń nazwami krajów, więc łatwo jest określić kraje, przez które przelatuje ptak.
Czy istnieje prosty sposób dodawania nazw krajów?
Wow, ten ptak podróżuje dość daleko! Jeśli potrzebujesz nazw i współrzędnych kraju, zajrzyj na [to pytanie] (http://stackoverflow.com/questions/2702309/need-a-list-of-all-countries-in-the-world-with-a współrzędna długości i szerokości geograficznej). Aby narysować tekst na mapie, spójrz na przykład nanoszenia nacisku na [tę stronę] (http://matplotlib.org/basemap/users/examples.html), wydaje się, że możesz po prostu zrobić "plt.text" (x, y, tekst) '. –
Dziękujemy! To było bardzo pomocne. Wkrótce opublikuję pełne rozwiązanie poniżej. –