当前位置: 首页 > 知识库问答 >
问题:

添加颜色时,plotly timeline条消失

壤驷宏才
2023-03-14

我正在尝试使用情节快速时间线可视化一系列视频中的不同阶段。我想为每个视频创建一个条形图,并为每个视频的阶段涂上不同的颜色。这意味着相同的阶段,相同的颜色。

以下是数据帧的一些行:

                            Task   Start  Finish Resource  delta
vid_idx                                                         
Video_002_007_1  Video_002_007_1       0      91        0     91
Video_002_007_1  Video_002_007_1      92     371        1    279
Video_002_007_1  Video_002_007_1     372     630       12    258
Video_002_007_1  Video_002_007_1     631   12352        1  11721
Video_002_007_1  Video_002_007_1   12353   60336        2  47983
Video_002_007_1  Video_002_007_1   60337   67641       3a   7304
Video_002_007_1  Video_002_007_1   67642   69134        2   1492
Video_002_007_1  Video_002_007_1   69135   69396       3b    261
Video_002_007_1  Video_002_007_1   69397   73963       3a   4566
Video_002_007_1  Video_002_007_1   73964   76800       3b   2836
Video_002_007_1  Video_002_007_1   76801   95566        4  18765
Video_002_007_1  Video_002_007_1   95567   97920        5   2353
Video_002_007_1  Video_002_007_1   97921   98119       12    198
Video_002_007_1  Video_002_007_1   98120   99171        5   1051
Video_002_007_1  Video_002_007_1   99172   99260       12     88
Video_002_007_1  Video_002_007_1   99261  102295        5   3034
Video_002_007_1  Video_002_007_1  102296  102378       12     82
Video_002_007_1  Video_002_007_1  102379  103045        5    666
Video_002_007_1  Video_002_007_1  103046  111433        6   8387
Video_002_007_1  Video_002_007_1  111434  111469        8     35

“delta”列是“Finish”-“Start”的结果。除了以下几行代码外,还需要将x轴从日期切换到帧。(至少据我所知)

fig_gantt.layout.xaxis.type='linear'
fig_gantt.data[0].x = df.delta.tolist()
fig_gantt.update_layout(xaxis=dict(tickmode='linear',tick0=0,dtick=50000))

我正在创建px。使用时间线

fig_gantt = px.timeline(df,
                    x_start='Start', 
                    x_end='Finish',
                    y='Task',
                    width=1000,
                    height=500)
fig_gantt.update_yaxes(autorange="reversed")
fig_gantt.layout.xaxis.type='linear'
fig_gantt.data[0].x = df.delta.tolist()
fig_gantt.update_layout(xaxis=dict(tickmode='linear',tick0=0,dtick=50000))
fig_gantt.show()

这将生成以下甘特图:单色甘特图

当我尝试使用口述和“资源”栏添加多种颜色时,我得到了一个彩色的图例,但根本没有条形图。

Dictonary:

colors = {'0':'rgb(0,0,255)',
      '1':'rgb(0,255,0)',
      '2':'rgb(255,0,0)',
      '2b':'rgb(255,64,127)',
      '3a':'rgb(0,255,255)',
      '3b':'rgb(255,255,0)',
      '4':'rgb(127,127,127)',
      '5':'rgb(0,0,127)',
      '6':'rgb(0,127,0)',
      '7':'rgb(127,0,0)',
      '8':'rgb(0,127,127)',
      '10a':'rgb(127,127,0)',
      '10b':'rgb(64,127,255)',
      '10c':'rgb(255,127,64)',
      '12':'rgb(127,64,255)'}

我尝试在图表中添加颜色:

for i in lst:
fig_gantt = ff.create_gantt(df_timeline.loc[list_vids[i:i+1]],
                            colors=colors,
                            index_col='Resource', 
                            group_tasks=True,
                            title='Phase lengths',
                            show_colorbar=True,
                            showgrid_x=True,
                            height=200)
fig_gantt.update_yaxes(autorange="reversed")
fig_gantt.update_xaxes(type='linear')
fig_gantt.update_layout(xaxis=dict(tickmode='linear',tick0=0,dtick=4000))
fig_gantt.show()

带有彩色图例但没有条形图的甘特图

因此,我为每个视频(“任务”)设置了一个栏。每个栏包括阶段(“资源”)和相应的范围(“开始”

我非常感谢您的帮助!

共有1个答案

夏宪
2023-03-14

解决方案最初是在这个答案中提供的,对我来说很有吸引力https://stackoverflow.com/a/68842350/4165040

只需更改这一行:

fig_gantt.data[0]. x=df.delta.tolist()

像下面的代码一样smth(可能需要一些调整,因为您使用的是自定义颜色编码,但希望您能弄清楚)

for d in fig_gantt.data:
    filt = df['Resource'] == d.name
    d.x = df[filt]['delta'].tolist()
 类似资料:
  • 我有以下代码用于在 matplotlib 中制作表格图。 plt 是一个拼贴图对象 我想为我使用的颜色图添加一个颜色条。 我试着做<代码>图。colorbar()但这给了我一个画布错误。

  • 我刚刚为tailwind添加了一种定制颜色,如下所示: 然后我运行了,颜色按预期工作,但所有其他颜色都消失了,它们从项目中被擦除,我无法使用它们,因为它们不会在自动完成中显示,也不会在自己键入它们时工作。 编辑:当我删除自定义颜色并重新运行时,旧颜色会再次工作,但我需要添加一个自定义颜色:/

  • 我想在我的Flitter应用程序中使用六色代码,使用backgroundColor:Colors#34A123。但我只能拍到颤振默认值

  • 问题内容: 以下代码无法在Python 2.5.4上运行: 错误消息是 如何在此代码中添加颜色条? 以下是口译员信息: 问题答案: 注意:我正在使用python 2.6.2。您的代码引发了相同的错误,以下修改解决了该问题。 我阅读了以下颜色栏示例:http : //matplotlib.sourceforge.net/examples/pylab_examples/colorbar_tick_la

  • 注意: Adobe Muse 不再添加新增功能,并将于 2020 年 3 月 26 日停止支持。有关详细信息和帮助,请参阅 Adobe Muse 服务结束页面。 “色板”面板 使用“色板”面板(窗口 > 颜色色板),可以创建和命名颜色、渐变或色调,并将它们快速应用于网站和个别设计元素。色板类似于段落样式和字符样式;对色板进行的任何更改将影响该色板应用于的所有对象。使用色板无需定位和调节各个个别的对

  • 我在用图书馆。在我展示我的图书馆使用的活动时,我使用了一种颜色来覆盖屏幕。看起来很酷。 但是由于一些原因,我决定使用渐变。我开发了美丽的渐变效果,如下所示 看起来不错。但问题是我使用的库只接受颜色或颜色资源。我没有其他方法可以改变,库正在显示它自己的活动,我只需要传递活动上显示的颜色。 现在我的问题是: 我可以直接定义颜色中的渐变色吗。xml文件。或者有没有办法将渐变色文件转换为可绘制的颜色,可以