我需要能够根据每个堆栈中的y值对堆栈的条形图进行排序。 R版本的Plotly中似乎有解决该问题的解决方案,但我还没有找到一个适用于Python的解决方案,或更具体地说,是Plotly Dash。
这是两个如何在R中解决排序问题的示例:
1)Stacked bar graphs in plotly: how to control the order of bars in each stack
以下是绘制条形图的基本代码:
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[20, 14, 23],
name='SF Zoo'
)
trace2 = go.Bar(
x=['giraffes', 'orangutans', 'monkeys'],
y=[12, 18, 29],
name='LA Zoo'
)
data = [trace1, trace2]
layout = go.Layout(
barmode='stack',
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='stacked-bar')
这是实际输出:
https://i.imgur.com/32ZLw6P.png
基于x轴(分类)对这些条进行排序很容易。按字母顺序对x排序的唯一代码是:
layout = go.Layout(
barmode='stack',
xaxis={'categoryorder': 'category ascending'}
)
但是是否可以使用Plotly Dash(Python)按数字y值对每个堆栈进行排序?如果对每个堆叠条进行排序,以使每个堆叠条的最低y值 在条的底部(无论是否跟踪),则预期结果如下:
https://i.imgur.com/7V3CQFQ.png
现在看来似乎只能对类别进行排序。
答案 0 :(得分:0)
只需切换跟踪的顺序即可。以绘图方式绘制轨迹,并根据您编写轨迹的顺序显示图例。