水平堆积条形图不适用于日期中的 x 轴
plotly horizontal stacked bar chart not working with x-axis in dates
我正在尝试 https://plotly.com/python/horizontal-bar-charts/ 在 彩色水平条形图 部分下提供的示例之一。但是我使用的不是数字而是日期
代码
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),仍然给我一个完全错误的图表。我尝试使用布局格式,但仍然无法解决这个问题
剧情:
一个解决方案是使用 Gantt Chart 可以更好地处理日期(特别是定义日期的开始和结束位置)。
这是一个工作示例:
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()
我正在尝试 https://plotly.com/python/horizontal-bar-charts/ 在 彩色水平条形图 部分下提供的示例之一。但是我使用的不是数字而是日期
代码
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),仍然给我一个完全错误的图表。我尝试使用布局格式,但仍然无法解决这个问题
剧情:
一个解决方案是使用 Gantt Chart 可以更好地处理日期(特别是定义日期的开始和结束位置)。
这是一个工作示例:
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()