python - 绘制水平堆积条形图不适用于日期中的 x 轴
问题描述
我正在尝试使用https://plotly.com/python/horizo ntal-bar-charts/ 在Colored Horizontal Bar Chart部分下提供的示例之一。但是我使用日期而不是数字
代码
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Bar(
y=['giraffes', 'orangutans', 'monkeys'],
x=['2012-02-02', '2012-02-01', '2012-02-01'],
name='SF Zoo',
orientation='h',
marker=dict(
color='rgba(246, 78, 139, 0.6)',
line=dict(color='rgba(246, 78, 139, 1.0)', width=3)
)
))
fig.add_trace(go.Bar(
y=['giraffes', 'orangutans', 'monkeys'],
x=['2012-02-10', '2012-02-06', '2012-02-28'],
name='LA Zoo',
orientation='h',
marker=dict(
color='rgba(58, 71, 80, 0.6)',
line=dict(color='rgba(58, 71, 80, 1.0)', width=3)
)
))
fig.update_layout(barmode='stack')
fig.show()
我尝试使用 datetime.datetime(2012, 2, 2, 0, 0),仍然给我一个完全错误的图表。我尝试使用布局格式,但仍然无法解决这个问题
阴谋:
解决方案
一种解决方案是使用甘特图,它可以更好地处理日期(特别是定义它的开始和结束位置)。
这是一个工作示例:
import plotly.express as px
import pandas as pd
df = pd.DataFrame([
dict(Task="LA Zoo", Start='2012-02-02', Finish='2012-02-10', Resource="giraffes"),
dict(Task="LA Zoo", Start='2012-02-01', Finish='2012-02-6', Resource="orangutans"),
dict(Task="LA Zoo", Start='2012-02-01', Finish='2012-02-28', Resource="monkeys"),
dict(Task="SF Zoo", Start='2012-02-10', Finish='2012-02-17', Resource="giraffes"),
dict(Task="SF Zoo", Start='2012-02-6', Finish='2012-02-22', Resource="orangutans"),
dict(Task="SF Zoo", Start='2012-02-28', Finish='2012-03-07', Resource="monkeys")
])
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Resource", color="Task")
fig.show()
推荐阅读
- python - VSCode 没有运行 Python
- monit - 根据处理器数量更新 Monit 配置的脚本
- c# - 我如何解决 System.ArgumentException:“要插入的节点来自另一个文档上下文。”
- json - 将所有内容放在另一个名为“数据”的 JSON API 级别下的用例是什么
- c# - Microsoft.Management.Infrastructure 强名称验证失败
- python-3.x - 我的索引页是空的,我得到的是白页
- sql - PreparedStatement、CallableStatement 与 Statement - 是 Statement 总是较慢
- c++ - 特征推导模板表达式类型
- c# - 如果添加子节点,为什么对象为空?
- sql - 在 PostgreSQL 中按值转换选择最小值