更新布局中从 0 到无的辅助轴范围不起作用

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

我有每年的总销售额和总发票(行)数据。我想将它们绘制在条形图和折线图中。我成功地用plotly制作了图表。

但是,我在调整辅助 y 轴从 0 开始并且不会通过绘图自动设置时遇到问题。

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

fig.add_trace(go.Bar(
    x=smy[smy['variable'] == 'Weekly_Sales_sum']['Year'],
    y=smy[smy['variable'] == 'Weekly_Sales_sum']['value'],
    name='Weekly Sales Sum'
))

fig.add_trace(go.Scatter(
    x=smy[smy['variable'] == 'Weekly_Sales_size']['Year'],
    y=smy[smy['variable'] == 'Weekly_Sales_size']['value'],
    name='Weekly Sales Size',
    yaxis='y2'
))

fig.update_layout(title='Bar and Line Chart for Weekly Sales Sum and Size',
                  yaxis=dict(title='Weekly Sales Sum'),
                  yaxis2=dict(title='Weekly Sales Size', overlaying='y', side='right', range=[0, None]))

pyo.iplot(fig)

我已经使用

fig
设置了
update_layout
range=[0, None]
来启动辅助轴从0开始,但它仍然不起作用。

python plotly plotly-python
1个回答
-1
投票

range=[0, None]
设置为
yaxis2
实际上有效。正如@kevin41所指出的,
2009.5
2012.5
位于x轴上,添加是因为
x
中的年份被视为数字,所以您需要相应地设置x轴
dtick
防止显示中间值:

fig.update_layout(xaxis_dtick=1)

事实上,您可能希望通过相应地设置 x 轴

type
将它们(x 中的年份)视为日期,但您将使用
Jul 2012
而不是
2012.5
,因此您仍然需要指定
 dtick
仅显示年份 :

fig.update_layout(xaxis=dict(type='date', dtick='M12'))

您也可以将它们视为类别,在这种情况下无需设置

dtick
:

fig.update_layout(xaxis_type='category')
© www.soinside.com 2019 - 2024. All rights reserved.