【问题标题】:Python & Plotly: Adding Hover Data to Density Heat MapPython & Plotly:将悬停数据添加到密度热图
【发布时间】:2021-11-28 19:54:39
【问题描述】:

作为一个简单的例子,我使用了Plotly 2D Histograms 网页上显示的第一个热图。 documentation 引用了 hover_data 参数,但我无法显示其他数据。示例中的数据框包括以下列:

>>> df.columns
Index(['total_bill', 'tip', 'sex', 'smoker', 'day', 'time', 'size'], dtype='object')

根据上述文档,可以像这样添加悬停数据,例如“大小”:

>>> fig = px.density_heatmap(df, x="total_bill", y="tip", hover_data=['size'])
>>> fig.show()

但是,生成的绘图仅在悬停数据中显示“total_bill”、“tip”和“count”。我错过了什么?

【问题讨论】:

    标签: python-3.x plotly plotly-python


    【解决方案1】:

    感谢 Derek 的建议和 SO Q&A,我使用 hover_templategraph_objectscustomdata 绘制数据,但未显示“烟雾”字段的自定义悬停数据。

    import plotly.graph_objects as go
    import plotly.express as px
    
    
    df = px.data.tips()
    
    fig = go.Figure(
        data=go.Histogram2d(
            x=df['total_bill'], 
            y=df['tip'],
            z=df['size'],
            histfunc='sum',
            customdata=[df['smoker']]
        )
    )
    
    fig.update_traces(
        hovertemplate='<br>'.join([
            'Bill $: %{x}',
            'Tip $: %{y}',
            'Size: %{z}',
            'Smokes: %{customdata[0]}'
        ])
    )
    
    fig.show()
    

    【讨论】:

    • 这项工作是否符合您的预期?
    • 没有。悬停文本显示为文字文本:“Smokes: %{customdata[0]}”。我在GitHub 上提出了一个问题。查看他们的回复。
    【解决方案2】:

    这绝对是px.density_heatmap 的一个错误。运行fig = px.density_heatmap(df, x="total_bill", y="tip", hover_data=['size']) 后,悬停模板应包含size 列,但悬停模板字符串不包含正确信息。

    fig.data[0].hovertemplate
    'total_bill=%{x}<br>tip=%{y}<br>count=%{z}<extra></extra>'
    

    为了比较,如果我们运行:fig = px.scatter(df, x="total_bill", y="tip", hover_data=['size']),我们可以看到 hovertemplate 确实包含了嵌入在 customdata 中的 size 列:

    fig.data[0].hovertemplate
    'total_bill=%{x}<br>tip=%{y}<br>size=%{customdata[0]}<extra></extra>'
    

    您可能暂时需要使用 Plotly graph_objects 在悬停时在热图中显示额外的 df 列。如果你愿意,我可以在这个答案上圈出来给你看!

    【讨论】:

    猜你喜欢
    • 2020-03-29
    • 2021-10-13
    • 2020-09-07
    • 2021-04-19
    • 2020-02-12
    • 2018-03-25
    • 2022-01-03
    • 1970-01-01
    • 2021-02-22
    相关资源
    最近更新 更多