python-3.x - Plotly – 按数字 y 对垂直堆积条形图进行排序
问题描述
我需要能够根据每个堆栈中的数字 y 值对堆积条形图进行排序。在 Plotly 的 R 版本中似乎有一个解决这个问题的解决方案,但我还没有找到一个用于 Python 的解决方案,或者更具体地说,Plotly Dash。
以下是如何在 R 中解决此排序问题的两个示例:
1)plotly中的堆叠条形图:如何控制每个堆叠中条形的顺序
这是 Plotly 堆叠条形图的基本代码:
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
现在似乎只能对类别进行排序。
解决方案
只需切换跟踪的顺序。Plotly 绘制轨迹,并根据您编写轨迹的顺序显示图例。
推荐阅读
- android - 如何在 Maven 和本地构建依赖项之间切换
- python - 为什么保存我用 fitz 打开的文件会改变它的大小?
- django - Django - 为什么作为上下文传递的列表在刷新时不清晰,而是重复?
- node.js - 如何使用 ReactJs 在前端获取子文档数据猫鼬
- javascript - Firebase:没有创建 Firebase 应用“[DEFAULT]”。Webpack 和 ES6 模块
- javascript - 如何使用 css 和 vanilla js 突出显示输入元素中的一个字母
- filter - 如何在 Bootstrap-table 上使用 data-filter-control-container 选项?
- javascript - 如何在 React Navigation 5.x 中从一个堆栈转到另一个包含选项卡堆栈的堆栈?
- javascript - 无法在 if else 语句中检索 v 的更新值
- sql - 如何将具有相同 id 的所有行连接成一行?