gpt4 book ai didi

python - 如何在plolty3.10中绘制排序条形图

转载 作者:太空宇宙 更新时间:2023-11-03 11:12:30 25 4
gpt4 key购买 nike

我一直在尝试为一些商店销售数据绘制排序条形图,但无论我尝试什么,它都会给我未排序的数据。如何使用 plotly 绘制排序后的条形图。

注意: https://community.plot.ly/t/sort-bars-in-bar-chart-by-value-and-have-each-bar-with-a-different-color/14562

对我不起作用。

数据

import numpy as np
import pandas as pd


import plotly
import plotly.offline as py
import plotly.graph_objs as go
from plotly.offline import plot, iplot, init_notebook_mode
init_notebook_mode(connected=False)

print([(x.__name__,x.__version__) for x in [np, pd,plotly]])

url = "https://github.com/bhishanpdl/Datasets/blob/master/store_item_demand/train_store_item_demand.csv?raw=true"
df = pd.read_csv(url, parse_dates=['date'],index_col=['date'])

使用 Pandas (给出排序的条形图)

df1 = df.groupby('store')['sales'].sum().sort_values()
df1.plot.bar()

使用 plotly3.10(给出未排序的条形图)(如何解决这个问题?)

def barplot(x,y):
data = [go.Bar(
x=x,
y=y,
marker={
'color': y,
'colorscale': 'Reds'
}
)]

layout = {
'xaxis': {
'tickvals': x,
'ticktext': ['store ' + str(i) for i in x],
'tickangle': 40
}
}

fig = go.FigureWidget(data=data, layout=layout)

return iplot(fig)


# plot

df1 = df.groupby('store')['sales'].sum().sort_values()
x = df1.index.values
y = df1.values

barplot(x,y)

输出

enter image description here

enter image description here

问题

如何使用 plotly3.10 获取排序条形图?

相关链接

https://community.plot.ly/t/sort-bars-in-bar-chart-by-value-and-have-each-bar-with-a-different-color/14562

对我不起作用。

最佳答案

为此使用的正确键是 layout.xaxis.categoryorder,其值为 "total ascending",但它仅适用于 layout. xaxis.type“类别”。如果您的 x 数组包含字符串,这会自动发生,但如果您的 x 仅包含数字,则您必须手动设置它。

这是推荐的 barplot 函数版本:

def barplot(x,y):
data = [go.Bar(
x=x,
y=y,
marker={
'color': y,
'colorscale': 'Reds'
}
)]

layout = {
'xaxis': {
'tickvals': x,
'ticktext': ['store ' + str(i) for i in x],
'tickangle': 40,
'type': "category",
'categoryorder': 'total ascending'
}
}

fig = go.FigureWidget(data=data, layout=layout)

return iplot(fig)

关于python - 如何在plolty3.10中绘制排序条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57642439/

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