Fondamentalement, j'ai un csv rempli de données de latitude et de longitude que j'ajoute à deux colonnes distinctes dans le cadre de données. Puis en utilisant cela pour créer un globe avec toutes les données tracées. Sauf que les données ne sont pas correctes et je ne sais pas pourquoi. Lire dans le fichier de données et l'ajouter à csv.Fond de carte Scatter ne pas tracer correctement
data_col = ['IP', 'Reliability', 'Risk', 'Type', 'Country', 'Locale', 'Co-Ords', '?']
data = pd.read_csv('reputation.data', sep='#', names=data_col)
Prenant la colonne Co-Ords et le fractionnement à deux colonnes différentes
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])
d'application des données de carte de base;
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()
Et il se présente comme suit: Globe
apprécie l'aide.
Edit: Les données que je lis
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
Pouvez-vous partager un extrait, 5-10 lignes de vos données, où vous annotez dans quel pays les points de données sont censés apparaître? –
[Oui, il ressemble à ce qui suit] (http://i.imgur.com/9Cv0PYE.png) –
Merci, pourriez-vous ajouter cette sortie en tant que texte à la question, de sorte qu'il est facile à copier? Vous pouvez faire 'print (data.head())', et il suffit de le copier ici. En outre, avez-vous tracé ce sous-ensemble pour confirmer que ces points sont également égarés sur la carte? –