绘图中的百分比刻度,无需乘以 100

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

我想我快疯了。我正在尝试为我的plotly go 条形图配置 y 轴刻度。 这是一个带有

barnorm='percent'
的堆叠条形图,表示所有条形总计达到 100%。 但是,我似乎无法让刻度线正常工作。

阅读来自plotly的文档除了他们似乎认为这是默认行为之外什么也没有给出,并将我转发到底层框架d3,它有一个用于定义刻度的严格系统。可悲的是,我对此一无所知。

如果我在

tickformat='%'
中选择
update_layout
,则 100% 的刻度为
10000.000000%

如果我选择

tickformat='p'
,则 100% 的刻度为
10000%

这两种方法似乎都将我的值乘以 100。这不是我想要的,因为plotly 从一开始就有正确的数字。我似乎不知道应该如何做,我现在已经投入了很多时间,我希望有人可以提供帮助。我的代码如下:

animals=['giraffes', 'orangutans', 'monkeys']

fig = go.Figure(data=[
    go.Bar(name='SF Zoo', x=animals, y=[20, 14, 23]),
    go.Bar(name='LA Zoo', x=animals, y=[12, 18, 29])
])

# Change the bar mode
fig.update_layout(
        barmode='stack',
        barnorm = 'percent',
        font_family="Roboto",
        font_size=15,
        yaxis = dict(tickformat='%'),
        showlegend=True
    )

fig.show()

(尝试上传条形图的图像,但收到一些服务器错误)

python d3.js plotly
2个回答
1
投票

您应该删除

yaxis = dict(tickformat='%')
并添加以下内容:

fig.update_layout(yaxis_ticksuffix = '%')

您需要阅读更多内容此处以了解有关 Plotly 如何与百分号配合使用的更多信息。


0
投票

我一直在寻找类似的解决方案。我想在 y 刻度中添加“%”符号,而不是乘以 100。目前使用

fig.update_yaxes(secondary_y=True, tickformat=".0%")
。但它会将 y 轴值乘以 100。尝试过
fig.update_layout(yaxis_ticksuffix = '%')
也是如此,但百分号没有出现。它也添加百分号吗? 预先感谢。

© www.soinside.com 2019 - 2024. All rights reserved.