Python 如何在plotly3.6中对条形图进行排序?

Python 如何在plotly3.6中对条形图进行排序?,python,plotly,Python,Plotly,我的办公室电脑中安装了plotly3.6,无法升级。 我试着做分类的条形图,但没有成功 我怎样才能做到 我的尝试: def条形图(x,y): 数据=[go.Bar]( x=x, y=y, 标记={ “颜色”:y, “颜色比例”:“红色” } )] 布局={ “xaxis”:{ “滴答声”:x, “ticktext”:[str(i)表示x中的i], “滴答声”:40, “类型”:“类别”, “categoryorder”:“类别升序” } } fig=go.FigureWidget(数据=数据,布

我的办公室电脑中安装了plotly3.6,无法升级。 我试着做分类的条形图,但没有成功

我怎样才能做到

我的尝试:

def条形图(x,y):
数据=[go.Bar](
x=x,
y=y,
标记={
“颜色”:y,
“颜色比例”:“红色”
}
)]
布局={
“xaxis”:{
“滴答声”:x,
“ticktext”:[str(i)表示x中的i],
“滴答声”:40,
“类型”:“类别”,
“categoryorder”:“类别升序”
}
}
fig=go.FigureWidget(数据=数据,布局=布局)
返回iplot(图)
#密谋
x=列表('abcde')
y=[20,10,5,8,9]
条形图(x,y)
相关链接: (这仅适用于plotly3.10,不适用于3.6)


非常感谢您的帮助。

这是您的函数版本,它可以实现这一点。。。基本上,您只需对传递到
go.Bar()
中的
x
y
值进行预排序。因为在这种情况下,
x
是一个字符串列表,
xaxis.type
被推断为
“category”
,并且默认情况下,类别的顺序是提供
x
列表的顺序,因此无需修改
tickvals
ticktext

import plotly.graph_objs as go
from plotly.offline import iplot

def barplot(x,y):
    sorted_y = sorted(y)
    sorted_x = [str(j) for i,j in sorted(zip(y,x))]

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

    fig = go.FigureWidget(data=data)

    return iplot(fig)


# plot
x = list('abcde')
y = [20,10,5,8,9]


barplot(x,y)