How to make a density heatmap in Python with Plotly.
Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.
In [1]:
import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/earthquakes-23k.csv') import plotly.express as px fig = px.density_map(df, lat='Latitude', lon='Longitude', z='Magnitude', radius=10, center=dict(lat=0, lon=180), zoom=0, map_style="open-street-map") fig.show()
In [2]:
import pandas as pd quakes = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/earthquakes-23k.csv') import plotly.graph_objects as go fig = go.Figure(go.Densitymap(lat=quakes.Latitude, lon=quakes.Longitude, z=quakes.Magnitude, radius=10)) fig.update_layout(map_style="open-street-map", map_center_lon=180) fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0}) fig.show()Mapbox Maps¶
Mapbox traces are deprecated and may be removed in a future version of Plotly.py.
The earlier examples using px.density_map
and go.Densitymap
use Maplibre for rendering. These traces were introduced in Plotly.py 5.24. These trace types are now the recommended way to make tile-based density heatmaps. There are also traces that use Mapbox: density_mapbox
and go.Densitymapbox
.
To use these trace types, in some cases you may need a Mapbox account and a public Mapbox Access Token. See our Mapbox Map Layers documentation for more information.
Here's one of the earlier examples rewritten to use px.density_mapbox
.
import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/earthquakes-23k.csv') import plotly.express as px fig = px.density_mapbox(df, lat='Latitude', lon='Longitude', z='Magnitude', radius=10, center=dict(lat=0, lon=180), zoom=0, mapbox_style="open-street-map") fig.show()Stamen Terrain base map with Mapbox (Stadia Maps token needed): density heatmap with
plotly.express
¶
Some base maps require a token. To use "stamen" base maps, you'll need a Stadia Maps token, which you can provide to the mapbox_accesstoken
parameter on fig.update_layout
. Here, we have the token saved in a file called .mapbox_token
, load it in to the variable token
, and then pass it to mapbox_accesstoken
.
import plotly.express as px import pandas as pd token = open(".mapbox_token").read() # you will need your own token df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/earthquakes-23k.csv') fig = px.density_mapbox(df, lat='Latitude', lon='Longitude', z='Magnitude', radius=10, center=dict(lat=0, lon=180), zoom=0, map_style="stamen-terrain") fig.update_layout(mapbox_accesstoken=token) fig.show()What About Dash?¶
Dash is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.
Learn about how to install Dash at https://dash.plot.ly/installation.
Everywhere in this page that you see fig.show()
, you can display the same figure in a Dash application by passing it to the figure
argument of the Graph
component from the built-in dash_core_components
package like this:
import plotly.graph_objects as go # or plotly.express as px fig = go.Figure() # or any Plotly Express function e.g. px.bar(...) # fig.add_trace( ... ) # fig.update_layout( ... ) from dash import Dash, dcc, html app = Dash() app.layout = html.Div([ dcc.Graph(figure=fig) ]) app.run(debug=True, use_reloader=False) # Turn off reloader if inside Jupyter
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4