Grundsätzlich habe ich eine csv gefüllt mit Breiten- und Längengrad Daten, die ich zu zwei separaten Spalten im Datenrahmen hinzufügen. Dann verwenden Sie das, um einen Globus mit allen geplotteten Daten zu erstellen. Außer die Daten sind nicht korrekt gezeichnet und ich habe keine Ahnung warum.Grundkarte Scatter nicht korrekt plotten
Einlesen der Datendatei und Hinzufügen zu csv.
data_col = ['IP', 'Reliability', 'Risk', 'Type', 'Country', 'Locale', 'Co-Ords', '?']
data = pd.read_csv('reputation.data', sep='#', names=data_col)
Unter der Co-Ords Säule und an zwei verschiedenen Spalten
data['Co-Ords'] = data['Co-Ords'].str.replace('ut: ','')
data['lat'] = data['Co-Ords'].apply(lambda x: x.split(',')[0])
data['lon'] = data['Co-Ords'].apply(lambda x: x.split(',')[1])
Umsetzung der Daten zu basemap Spaltung;
m1 = Basemap(projection='ortho', lon_0=4,lat_0=46, resolution='l')
fig=plt.figure(figsize=(12, 6))
m1.drawmapboundary(fill_color='black')
m1.fillcontinents(color='white',lake_color='black')
m1.drawcoastlines()
m1.drawcountries()
x=(data['lat']).as_matrix()
y=(data['lon']).as_matrix()
m1.scatter(x,y,cmap=cm.cool,marker="*", color='r', alpha=0.7,
latlon=True, zorder=10)
plt.title("IP Addresses on the Globe")
plt.show()
Und es sieht wie folgt aus: Globe
die Hilfe zu schätzen wissen.
Edit: Die Daten, die lese ich von
IP Reliability Risk Type Country Locale Co-Ords ? lat lon
46.4.123.15 4 2 Malicious DE NaN 51.0,9.0 3 51 9
116.117.253.243 3 2 Scanning CN Baotou 40.6521987915,109.82219696 11 40.6521987915 109.82219696
123.59.59.89 4 2 Malicious CN Beijing 39.9289016724,116.388298035 3 39.9289016724 116.388298035
123.59.71.2 4 2 Malicious CN Beijing 39.9289016724,116.388298035 3 39.9289016724 116.388298035
123.59.149.74 4 2 Malicious CN Beijing 39.9289016724,116.388298035 3 39.9289016724 116.388298035
Könnten Sie arbeitet gemeinsam nutzen Schnipsel, 5-10 Zeilen Ihrer Daten, wo kommentieren Sie, in welchem Land die Datenpunkte erscheinen sollen? –
[Ja, es sieht folgendermaßen aus] (http://i.imgur.com/9Cv0PYE.png) –
Danke, könnten Sie diese Ausgabe als Text an die Frage anhängen, so dass es einfach zu kopieren ist? Sie können 'print (data.head())' tun und es einfach hier kopieren. Haben Sie diese Teilmenge auch geplottet, um zu bestätigen, dass diese Punkte auch auf der Karte falsch platziert sind? –