Plotly examples#
import plotly.graph_objects as go
fig = go.Figure()
# Dataset 1
fig.add_trace(go.Scattergeo(
lat=[37.77, 38.91, 40.73],
lon=[-122.42, -77.04, -74.00],
mode="markers",
marker=dict(size=8, color="blue"),
name="Dataset 1"
))
# Dataset 2
fig.add_trace(go.Scattergeo(
lat=[34.05, 36.16],
lon=[-118.24, -115.15],
mode="markers",
marker=dict(size=8, color="red"),
name="Dataset 2"
))
fig.update_geos(projection_type="natural earth")
fig.update_layout(
geo=dict(
scope='usa', # focus on USA
projection_type='albers usa', # better projection for US
showland=True,
landcolor='lightgray',
subunitcolor="black", # state/province borders
subunitwidth=1, # border thickness
countrycolor="black", # country borders
showcountries=True,
lakecolor='lightblue',
showlakes=True
)
)
# set width and height
fig.update_layout(
width=1000, # pixels
height=800, # pixels
title=""
)
fig.show()
import pandas as pd
import plotly.express as px
# Dataset 1
df1 = pd.DataFrame({
"lat": [37.77, 38.91, 40.73],
"lon": [-122.42, -77.04, -74.00],
"group": "Dataset 1"
})
# Dataset 2
df2 = pd.DataFrame({
"lat": [34.05, 36.16],
"lon": [-118.24, -115.15],
"group": "Dataset 2"
})
# Combine
df = pd.concat([df1, df2])
# Plot
fig = px.scatter_map(df, lat="lat", lon="lon", color="group",
size_max=10)
# set width and height
fig.update_layout(
width=1000, # pixels
height=800, # pixels
title=""
)
fig.show()
import numpy as np
import pandas as pd
import plotly.express as px
# Dataset 1
lat1 = np.array([37.77, 38.91, 40.73])
lon1 = np.array([-122.42, -77.04, -74.00])
group1 = np.array(['Dataset 1']*len(lat1))
# Dataset 2
lat2 = np.array([34.05, 36.16])
lon2 = np.array([-118.24, -115.15])
group2 = np.array(['Dataset 2']*len(lat2))
# Combine
lat = np.concatenate([lat1, lat2])
lon = np.concatenate([lon1, lon2])
group = np.concatenate([group1, group2])
# Convert to DataFrame
df = pd.DataFrame({"lat": lat, "lon": lon, "group": group})
# Plot
fig = px.scatter_map(df, lat="lat", lon="lon", color="group", size_max=10)
# set width and height
fig.update_layout(
width=1000, # pixels
height=800, # pixels
title=""
)
fig.show()
import numpy as np
import plotly.graph_objects as go
# Example data: 3 channels, each with its own lat/lon
channels = ["Channel 1", "Channel 2", "Channel 3"]
data = {
"Channel 1": {"lat": [37, 38, 39], "lon": [-120, -118, -122]},
"Channel 2": {"lat": [36, 35, 37], "lon": [-119, -115, -117]},
"Channel 3": {"lat": [34, 36, 35], "lon": [-118, -116, -114]},
}
fig = go.Figure()
# Add initial trace (first channel)
ch0 = channels[0]
fig.add_trace(go.Scattermap(
lat=data[ch0]["lat"],
lon=data[ch0]["lon"],
mode='markers',
marker=dict(size=10, color='blue'),
name=ch0
))
# Define slider steps to replace data
steps = []
for ch in channels:
step = dict(
method="update",
args=[{"lat": [data[ch]["lat"]], "lon": [data[ch]["lon"]], "name": ch},
{"title.text": f"Observations: {ch}"},],
label=ch
)
steps.append(step)
sliders = [dict(active=0, pad={"t": 50}, steps=steps)]
# Layout
fig.update_layout(
map=dict(
center={"lat": 36.5, "lon": -118}, # adjust for your data
zoom=4
),
sliders=sliders,
width=1000, # pixels
height=800, # pixels
)
fig.show()