Plotly examples

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