Plotly:如何更改轨迹顺序,或以绘图方式切换轴的侧面?

问题描述 投票:1回答:1

我正在尝试使该行显示在栏上。似乎具有secondary_y=True的任何迹线都将绘制在secondary_y=False的迹线之上。

很好,但是对于这个特定的数据集,条形图的轴应该在右边,因为否则该图会造成混淆。线是在1-3范围内的线,而横线是在0-35k范围内的线。

换句话说,它看起来应该像这样,但是要切换y轴。有什么方法可以切换轴或控制其绘制轨迹的顺序,以便我可以将线强制置于条形图的顶部?

enter image description here

import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
from plotly.offline import init_notebook_mode,  plot
init_notebook_mode()

rdf = pd.read_csv('us_covid_data_latest.csv', dtype={'fips':str})
incidence = pd.pivot_table(rdf, values='cases', index = 'date', aggfunc=np.sum)
incidence['actual_inc'] = incidence['cases'].diff()

def tail_plot_plotly(tail):

    fig = make_subplots(specs=[[{"secondary_y": True}]])

    fig.add_trace(
        go.Bar(
            x= incidence['date'].tail(tail),
            y= incidence['actual_inc'].tail(tail)
            ),
        secondary_y = False
        ) 


    fig.add_trace(
        go.Scatter(
            x= incidence['date'].tail(tail),
            y= incidence['R_t'].tail(tail)
            ),
        secondary_y = True
        )

    plot(fig)

tail_plot_plotly(50)
python pandas plotly
1个回答
1
投票

如果没有数据集样本,提供完整的解决方案并不容易,但我仍然认为我已经解决了。我现在有点着急,所以我将其简短化:

条是大数字,线是小数字。开箱即用的fig = make_subplots(specs=[[{"secondary_y": True}]])将提供此信息:

enter image description here

顶部的线迹=好。左侧的小节编号=错误。

更改将不同迹线应用于图形的顺序无济于事。但是,您可以自由指定要在主坐标轴和副坐标y轴显示在绘图的哪一侧,如下所示:

fig.update_layout(dict(yaxis2={'anchor': 'x', 'overlaying': 'y', 'side': 'left'},
                  yaxis={'anchor': 'x', 'domain': [0.0, 1.0], 'side':'right'}))

将其添加到组合中,您将获得:

enter image description here

顶部的线迹=好。右边的杠号=好。

包含数据样本的完整代码:

Will be added...
© www.soinside.com 2019 - 2024. All rights reserved.