Morgen,
habe die nachfolgenden Quelltexte und würde gerne Quelltext 1 mit 2 ersetzen, nur leider liegen die Punkte bei Quelltext 2 nicht auf der richtigen Position.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # -*- coding: utf-8 -*- #!/usr/bin/env python3 from mpl_toolkits.basemap import Basemap import os import matplotlib as mpl if not os.environ.get('DISPLAY'): mpl.use('Agg') import matplotlib.pyplot as plt data_file = open('full_list.list') latitude, longitude = [], [] for index, line in enumerate(data_file.readlines()): if index > 1: latitude.append(float(line.split(',')[1])) longitude.append(float(line.split(',')[2])) my_dpi=96 plt.figure(figsize=(2600/my_dpi, 1800/my_dpi), dpi=my_dpi) map=Basemap(llcrnrlon=-170, llcrnrlat=-65,urcrnrlon=190,urcrnrlat=90) map.drawmapboundary(fill_color='white', linewidth=0) map.fillcontinents(color='grey', alpha=0.3) map.drawcoastlines(linewidth=0.1, color="white") x,y = map(longitude, latitude) map.plot(x, y, 'ro', markersize=5) plt.show() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # -*- coding: utf-8 -*- #!/usr/bin/env python3 from mpl_toolkits.basemap import Basemap import os import matplotlib as mpl if not os.environ.get('DISPLAY'): mpl.use('Agg') import matplotlib.pyplot as plt import pandas as pd my_dpi=96 plt.figure(figsize=(2600/my_dpi, 1800/my_dpi), dpi=my_dpi) map=Basemap(llcrnrlon=-170, llcrnrlat=-65,urcrnrlon=190,urcrnrlat=90) map.drawmapboundary(fill_color='white', linewidth=0) map.fillcontinents(color='grey', alpha=0.3) map.drawcoastlines(linewidth=0.1, color="white") data = pd.read_csv('full_list.list', sep=",") map.scatter(data['longitude'], data['latitude'], s=5, c='red', cmap="Set1") plt.show() |
Inhalt Datei "full_list.list":
geonameid,longitude,latitude 1581130,21.0245,105.841 3182884,43.4628,11.8807 2017370,60.0,100.0 4684888,32.7831,-96.8067 5506956,36.175,-115.137 usw.
Wie kann ich das ändern (ich vermute, ich muss cmap irgendwie ändern)?
Wie ist der Umrechnungsfaktor der Punktgröße (Punkte sollen genauso groß sein wie im Quelltext 1)?
Wie kann ich anhand der geonameid - wenn ich sie einlesen würde - eine Farbe für die Punkte festlegen?
Bsp.: geonameid > 1500000 = red, geonameid > 3000000 = blue, geonameid > 5000000 = black
Kann ich daraus auch gleich die entsprechende Legende generieren im linken unteren Bildbereich auf der Grafik?