gpt4 book ai didi

python - 有没有办法在 plotly express 中实现堆叠或分组条形图

转载 作者:行者123 更新时间:2023-12-04 17:32:06 26 4
gpt4 key购买 nike

我正在尝试以 plotly express 实现分组条形图(或)堆叠条形图

我已经使用 plotly(非常简单)实现了它,下面是它的代码。 dataframe 一共有六列 ['Rank', 'NOC', 'Gold', 'Silver', 'Bronze', 'Total']

`
trace1=go.Bar(x=olympics_data['NOC'],y=olympics_data['Gold'],marker=dict(color='green',opacity=0.5),name="Gold")
trace2=go.Bar(x=olympics_data['NOC'],y=olympics_data['Silver'],marker=dict(color='red',opacity=0.5),name="Silver")
trace3=go.Bar(x=olympics_data['NOC'],y=olympics_data['Bronze'],marker=dict(color='blue',opacity=0.5),name="Bronze")

data=[trace1,trace2,trace3]

layout = go.Layout(title="number of medals in each category for various countries",xaxis=dict(title="countries"),yaxis=dict(title="number of medals"),
barmode="stack")

fig = go.Figure(data,layout)

fig.show()`

输出:

enter image description here

我期待使用 plotly-express 得到类似的输出。

最佳答案

您可以安排您的数据使用 px.bar(),如 link .

或者您可以考虑在 barmode() 中使用 relative .

barmode (str (default 'relative')) – One of 'group', 'overlay' or'relative' In 'relative' mode, bars are stacked above zero forpositive values and below zero for negative values. In 'overlay' mode,bars are drawn on top of one another. In 'group' mode, bars are placedbeside each other.

使用覆盖:

import plotly.express as px
iris = px.data.iris()
display(iris)
fig = px.histogram(iris, x='sepal_length', color='species',
nbins=19, range_x=[4,8], width=600, height=350,
opacity=0.4, marginal='box')
fig.update_layout(barmode='overlay')
fig.update_yaxes(range=[0,20],row=1, col=1)
fig.show()

enter image description here

使用相对:

fig.update_layout(barmode='relative')
fig.update_yaxes(range=[0,20],row=1, col=1)
fig.show()

enter image description here

使用:

fig.update_layout(barmode='group')
fig.show()

enter image description here

关于python - 有没有办法在 plotly express 中实现堆叠或分组条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58766305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com