【问题标题】:How to add a line to a plotly express bar chart如何在绘图快速条形图中添加一条线
【发布时间】:2022-01-07 10:00:45
【问题描述】:

我正在尝试在plotly 的条形图上添加一条非常简单的线,并且正在为此而努力。我的数据框包含一列 bins 和另一列 returnsdata,可以在这里复制:

{'bins': {0: '(-23.077, 25.877]', 1: '(25.877, 34.666]', 2: '(34.666, 42.552]', 3: '(42.552, 46.044]', 4: '(46.044, 49.302]', 5: '(49.302, 52.746]', 6: '(52.746, 57.075]', 7: '(57.075, 62.349]', 8: '(62.349, 69.171]', 9: '(69.171, 90.975]'}, 'returns': {0: 0.39754, 1: 0.6817, 2: -0.1918399999999998, 3: -0.44406, 4: -0.6611199999999998, 5: -0.0742857142857142, 6: 0.25304, 7: 0.4166, 8: 0.97648, 9: 0.0539999999999999}}

我已经使用以下代码创建了一个绘图条形图:

fig = px.bar(dfs, x='bins', y='returns')
fig.show()

我想在条形图上添加一条代表基准分数的恒定线,并查看了以下内容:Plotly: How to add trendline to a bar chart?

这些方法似乎被贬低了,我似乎找不到任何方法来做到这一点。基准列表是这样的:

[0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858]

我希望它看起来像这样(这条线应该是直的,为糟糕的油漆工作编辑道歉)

有人知道怎么做吗?

【问题讨论】:

    标签: python pandas plotly plotly-dash


    【解决方案1】:

    我会简单地使用:

    fig.add_traces(go.Scatter(x= dfs.bins, y=dfs.benchmark, mode = 'lines'))
    

    情节

    完整代码:

    import pandas as pd
    import plotly.express as px
    import plotly.graph_objects as go
    dfs = pd.DataFrame({'bins': {0: '(-23.077, 25.877]', 1: '(25.877, 34.666]', 2: '(34.666, 42.552]', 3: '(42.552, 46.044]', 4: '(46.044, 49.302]', 5: '(49.302, 52.746]', 6: '(52.746, 57.075]', 7: '(57.075, 62.349]', 8: '(62.349, 69.171]', 9: '(69.171, 90.975]'}, 'returns': {0: 0.39754, 1: 0.6817, 2: -0.1918399999999998, 3: -0.44406, 4: -0.6611199999999998, 5: -0.0742857142857142, 6: 0.25304, 7: 0.4166, 8: 0.97648, 9: 0.0539999999999999}})
    dfs['benchmark'] = [0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858, 0.14080542857142858]
    
    fig = px.bar(dfs, x='bins', y='returns')
    fig.add_traces(go.Scatter(x= dfs.bins, y=dfs.benchmark, mode = 'lines'))
    fig.show()
    

    【讨论】:

      【解决方案2】:

      您可以使用 Plotly 的horizontal and vertical shapes 来添加水平线:

      fig.add_hline(y=0.14080542857142858)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-09
        • 2012-10-25
        • 1970-01-01
        • 2018-03-07
        • 2021-07-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多