底图散布未正确绘制

2024-06-01 10:01:36 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我有一个csv,里面有纬度和经度数据,我要把它们添加到数据框的两个单独的列中。然后用它来创建一个绘制所有数据的地球仪。只是数据没有正确绘制,我也不知道为什么。在

读取数据文件并将其添加到csv。在

data_col = ['IP', 'Reliability', 'Risk', 'Type', 'Country', 'Locale', 'Co-Ords', '?'] 
data = pd.read_csv('reputation.data', sep='#', names=data_col)

获取coords列并将其拆分为两个不同的列

^{pr2}$

实现数据到底图

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()

它看起来如下: Globe

感谢你的帮助。在

编辑:我正在读取的数据

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

Tags: csv数据ipdata绘制pltcolcn
1条回答
网友
1楼 · 发布于 2024-06-01 10:01:36

您需要convert your longitude and latitude to map coordinates通过x, y = m1(x, y)。在下面的代码中,我用这一行替换了这一行和矩阵转换,我认为这一行更清楚:y,x = m1(data['lon'].values, data['lat'].values)

这个代码对我有用

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,y = m1(data['lon'].values, data['lat'].values)
m1.scatter(x,y, marker="*", color='r', alpha=0.7, zorder=10)

plt.title("IP Addresses on the Globe")
plt.show()

enter image description here

相关问题 更多 >