【问题标题】:Python Plotly adding px objects to a subplot objectPython Plotly 将 px 对象添加到子图对象
【发布时间】:2022-01-16 06:28:18
【问题描述】:

所以我试图将两个情节合二为一。我用 plotly.express 库而不是 plotly.graphs_objs 制作了这些图。 现在,情节建议使用:fig = make_subplots(rows=3, cols=1) 然后append_traceadd_trace 但是,这不适用于快速对象,因为附加跟踪需要单个。痕迹。如何将快速图形添加到子图中?或者这根本不可能。我尝试过的一个选项是fig.data[0],但这只会添加第一行/数据条目。 Rn 我的代码如下所示:

double_plot = make_subplots(rows=2, cols=1, shared_xaxes=True)
    histo_phases = phases_distribution(match_file_, range)
    fig = px.line(match_file,
                  x="Minutes", y=["Communicatie", 'Gemiddelde'], color='OPPONENT')
    fig.update_layout(
        xaxis_title="Minuten",
        yaxis_title="Communicatie per " + str(range) + "minuten",
        legend_title='Tegenstander',
    )
    
    double_plot.append_trace(fig.data, row=1, col=1)
    double_plot.append_trace(histo_phases.data, row=2, col=1)

提前致谢。

【问题讨论】:

    标签: python express plotly subplot


    【解决方案1】:
    • 您的代码示例不包括数据框和图形的创建。已模拟
    • 就像将使用 plotly express 创建的图形中的每个痕迹添加到使用 make_subplots() 创建的图形中一样简单
    for t in fig.data:
        double_plot.append_trace(t, row=1, col=1)
    for t in histo_phases.data:
        double_plot.append_trace(t, row=2, col=1)
    

    完整代码

    from plotly.subplots import make_subplots
    import plotly.express as px
    import pandas as pd
    import numpy as np
    
    df = px.data.tips()
    
    double_plot = make_subplots(rows=2, cols=1, shared_xaxes=True)
    # histo_phases = phases_distribution(match_file_, range)
    histo_phases = px.histogram(df, x="total_bill")
    match_file = pd.DataFrame(
        {
            "Minutes": np.repeat(range(60), 10),
            "Communicatie": np.random.uniform(1, 3, 600),
            "Gemiddelde": np.random.uniform(3, 5, 600),
            "OPPONENT": np.tile(list("ABCDEF"), 100),
        }
    )
    fig = px.line(match_file, x="Minutes", y=["Communicatie", "Gemiddelde"], color="OPPONENT")
    fig.update_layout(
        xaxis_title="Minuten",
        yaxis_title="Communicatie per " + str(range) + "minuten",
        legend_title="Tegenstander",
    )
    
    for t in fig.data:
        double_plot.append_trace(t, row=1, col=1)
    for t in histo_phases.data:
        double_plot.append_trace(t, row=2, col=1)
    
    double_plot
    

    【讨论】:

    • 哦,哇,这完全有道理。我很困惑,因为我预计循环只会不断为每个跟踪添加数字,但是通过指定行和列,它们进入特定数字是有意义的......非常感谢。
    猜你喜欢
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2013-08-11
    • 2021-10-06
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多