Plotly:同一图中的散点图和动画线图

标签 plotly plotly-python

我需要在plotly中创建一个散点图,并在其上面覆盖一个线图。我发现如果我使用图形对象创建图形,然后使用plotlyexpress添加数据,我就可以做到这一点:

scatter = px.scatter(...)
line = px.line(...)
fig = go.Figure(data=scatter.data + line.data)

但问题是我需要使用 slider 对线图进行动画处理,而当我使用 graph_objects 接口(interface)时我无法做到这一点。

你知道有没有办法做到这一点?

最佳答案

  • 模拟了两个独立数据集(轴和动画的维度一致)
  • 尚不清楚您是否想要集成两个动画人物或动画和固定人物。使用了前者,后者将是相同的,只是固定图形的痕迹将被复制到每个目标帧中
  • 一切都是为了保持一致
    1. 整合痕迹
    2. 整合框架
    3. 选择布局
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go

r = np.random.RandomState(22)

# simulate two independent dataframes.  NB some consistency for axes and animation
df_line = pd.DataFrame(
    {
        "animation": np.repeat(list("ABCDE"), 10),
        "x": np.tile(np.linspace(0, 10, 10), 5),
        "y": r.uniform(0, 10, 50),
    }
)

df_scatter = pd.DataFrame(
    {
        "animation": np.repeat(list("ABCDE"), 50),
        "x": np.tile(np.linspace(0, 10, 50), 5),
        "y": r.uniform(0, 10, 250),
    }
)

line = px.line(df_line, x="x", y="y", animation_frame="animation")
scatter = px.scatter(df_scatter, x="x", y="y", animation_frame="animation")

# now integrate, traces, frames and layout
fig = go.Figure(
    data=line.data + scatter.data,
    frames=[
        go.Frame(data=fr1.data + fr2.data, name=fr1.name)
        for fr1, fr2 in zip(line.frames, scatter.frames)
    ],
    layout=scatter.layout,
)

fig

enter image description here

关于Plotly:同一图中的散点图和动画线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73863843/

相关文章:

python - DataTable - 单元格中的唯一颜色子字符串

python - 如何在X轴上添加水平滚动条?

python - 如何使用plotly python绘制时间序列堆积条形图

python - 禁用 Python 中的 Plotly 以任何形式与网络通信

r - 将 ggplot2 转换为 ggplotly 时缺少 geom_rect

R Shiny : How to loop output plotly graphs

r - plotly_build修改图例和标签

python - Plotly:如何使用 plotly express 为多个轨迹设置标记符号形状?

r - 徒手画ggplot。如何改进和/或格式化 plotly?

python - Pandas:使用plotly作为后端时如何选择绘图元素颜色?