Reputation: 23
I have tried putting my code into both Jupyter notebook and Google Colab but once I worked through all the errors in my code, I am not just getting a blank screen in the output. When I run the code with just the map before putting the heatmap dataset on it, it works. I used https://alysivji.github.io/getting-started-with-folium.html to structure my code. Here is the link to the data set: https://data.cityofnewyork.us/Public-Safety/NYPD-Arrest-Data-Year-to-Date-/uip8-fykc
My full code is below.
here is what it looks like right now
import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
import numpy as np
import folium
from folium import features
from folium import plugins
from folium.plugins import HeatMap
from folium.plugins import MarkerCluster
print("Setup Complete")
crime_filepath = "arrestdata.csv"
crime_data = pd.read_csv (crime_filepath, index_col = "ARREST_DATE")
crime_data.head()
#this is the section that doesn't work
m = folium.Map([40.7128, -74.0060], zoom_start=10.3)
m #this and the line above properly creats a blank map
for index, row in crime_data.iterrows():
folium.CircleMarker([row['Latitude'],row['Longitude']],
radius=15,
fill_color="#3db7e4",).add_to(m)
my_map = crime_data[['Latitude', 'Longitude']].values
m.add_child(plugins.HeatMap(my_map, radius=15))
m
Upvotes: 2
Views: 3053
Reputation: 74
I have downloaded the dataset in your link and managed to get a heat map and markercluster. I did however only take a sub-set of the data in this case Robbery just to check the code worked, as the size was significant. Popup were ARREST_PRECINCT in the dataframe. I have provided two methods to create the heat map since you are using these.
import pandas as pd
import folium
from folium import plugins
from folium.plugins import HeatMap
from folium.plugins import MarkerCluster
nypd_data = pd.re ad_csv('NYPD_Arrest_Data__Year_to_Date_.csv')
nypd_robbery = nypd_data.loc[nypd_data['OFNS_DESC']=='ROBBERY']
my_heatmap = folium.Map(location=[40.695792, -73.939096], zoom_start=8)
heat_data = [[row['Latitude'],row['Longitude']] for index, row in nypd_robbery.iterrows()]
# Plot it on the map
HeatMap(heat_data).add_to(my_heatmap)
# Display the map
my_heatmap
#or
my_map = folium.Map(location=[40.695792, -73.939096], zoom_start=8)
robbery_loc = nypd_robbery[['Latitude', 'Longitude']].values
# plot heatmap
my_map.add_child(plugins.HeatMap(robbery_loc, radius=15))
my_map
#MarkerCluster
map_rob = folium.Map(location=[40.695792, -73.939096], zoom_start=10, tiles='Stamen Terrain')
marker_cluster = folium.plugins.MarkerCluster().add_to(map_rob)
for index,row in nypd_robbery.iterrows():
lat = row["Latitude"]
lon = row["Longitude"]
name = row["ARREST_PRECINCT"]
folium.Marker([lat,lon],popup=name).add_to(marker_cluster)
map_rob
enter code here
Upvotes: 2