python按经纬度绘制盐湖城犯罪图
时间: 2023-07-06 10:22:14 浏览: 183
好的,我了解了。要按照经纬度绘制盐湖城犯罪图,可以使用Python的Pandas和folium库。
首先,需要使用Pandas读取盐湖城犯罪数据集,该数据集可以从https://www.kaggle.com/mrmorj/data-analysis-on-salt-lake-city-crime-data获取。读取数据集后,可以使用Pandas和Numpy对数据进行处理,筛选出所需的数据,并对数据进行清洗、格式化等操作。
然后,使用folium库创建地图对象,设置地图中心经纬度和缩放级别。使用folium.CircleMarker()方法在地图上绘制标记点,每个标记点代表一个犯罪案件。可以根据案件的经纬度、案件类型、日期等信息设置标记点的颜色、大小、弹出窗口内容等属性。最后,使用地图对象的save()方法保存地图到本地。
以下是一个简单的示例代码,可以绘制盐湖城犯罪图:
```
import pandas as pd
import numpy as np
import folium
# 读取盐湖城犯罪数据集
crime_data = pd.read_csv('SLC Crime Data.csv')
# 筛选出所需数据
selected_data = crime_data[['latitude', 'longitude', 'offense_type', 'date']]
# 对数据进行清洗、格式化等操作
...
# 创建地图对象,设置中心经纬度和缩放级别
map_osm = folium.Map(location=[40.7608, -111.8910], zoom_start=12)
# 在地图上绘制标记点
for index, row in selected_data.iterrows():
folium.CircleMarker(location=[row['latitude'], row['longitude']],
radius=5,
color=get_color(row['offense_type']),
fill=True,
fill_color=get_color(row['offense_type']),
fill_opacity=0.7,
popup='<b>Offense Type:</b> ' + row['offense_type'] + '<br><b>Date:</b> ' + row['date']
).add_to(map_osm)
# 保存地图
map_osm.save('crime_map.html')
```
在这个示例中,我们首先读取盐湖城犯罪数据集,并筛选出所需的数据。然后创建地图对象,设置中心经纬度和缩放级别。接着使用for循环遍历所有数据,对每个数据绘制一个标记点,并设置标记点的颜色、大小、弹出窗口内容等属性。最后使用map_osm.save()方法保存地图。
在生成的crime_map.html文件中,可以看到绘制了盐湖城犯罪图,每个标记点代表一个犯罪案件,颜色、大小、弹出窗口内容等属性根据案件类型、日期等信息设置。
阅读全文