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

plotly是否可以制作甘特图?

丁阳炎
2023-03-14

帮助我正试图用plotly绘制甘特图,但我没有找到一种方法。甘特图类似于水平条形图,每个条形图都有一个“起点”坐标。所以它看起来像:

   XXXXX
      XXXXXX
   XXXXXXXXXXXXXXXXXXXXX
            XXXX

我找不到让条形图中的“条形图”从特定的X坐标开始的方法。有什么提示/技巧/提示吗?

共有3个答案

郑浩博
2023-03-14

是的!进口plotly.figure_factoryff

ff。创建甘特图(df)

Plotly内置甘特图。您不需要从条形图创建它们。你可以给它一个字典列表,也可以给它一个数据帧。如果你做后者,一定要告诉数字哪列是任务,以及开始和结束日期。我发现使用datatime和标记列Start和Finish要容易得多。这样,甘特图将自动读取它们。文档位于以下链接中。

https://plot.ly/python/gantt/

荀博
2023-03-14

Riddhiman在R。http://moderndata.plot.ly/gantt-charts-in-r-using-plotly/ . 一开始我很不情愿,因为这个循环给了我很大的自由。

我为自己的需要添加了一些额外的布局:

p <- plot_ly()   
for(i in 1:(nrow(df) - 1)){
   p <- add_trace(p,
             x         = c(df$Start[i], df$Start[i] + df$Duration[i]),  # x0, x1
             y         = c(i, i),  # y0, y1
             mode      = "lines+markers+text",
             marker    = list(color  = df$color[i]
                             ,symbol = "line-ns-open"
                             ,size   = 13), #markers ensures visability
             text      = c(df$text[i],"") # adds a text string
             textposition = "middle left" #to the left of the bar
             line      = list(color  = df$color[i]
                            , width  = 20),
             showlegend = F,
             hoverinfo = "text",

             # Create custom hover text

             text      = paste0("<b>Task:</b> ",     df$Task[i],     "<br>",
                                "<b>Duration:</b> ", df$Duration[i], " days<br>",
                                "<b>Resource:</b> ", df$Resource[i]),

             evaluate  = T  # needed to avoid lazy loading
)}  
越俊艾
2023-03-14

这是我的结果。。。这不是一个完美的甘特图,(你不能改变条形图的大小,条目之间没有依赖关系),但对我来说已经足够好了:

显示我如何执行透明跟踪的代码片段:

        // loop through all obj's to draw, for each one
        // make a transparent offset to mimic gantt chart.
        traces.push( {
           x: [ obj.totalrunTime ],
           y: [ key ],
           name: key,
           text: [ obj.totalrunTime+' '+key ], 
           orientation: 'h',
           marker: { color: obj.color },
           type: 'bar'
        });
        traces.push( {
           x: [ offset ],
           y: [ key ],
           showlegend: false,
           orientation: 'h',
           marker: { color: 'rgba(255,255,255,0)' },
           hoverinfo: "none",
           name: key,
           type: 'bar'
        });

        offset = offset + jobs[key].totalrunTime;
 类似资料:
  • 我正在尝试创建一个线/面积图,它看起来像一个用python绘制的甘特图。这是因为我没有开始和结束列(px.timeline需要)。相反,我有几个向量,从某个时间点开始,在几个月内减少。为了更好地说明,这是我的数据框架: 如您所见,对于每个时段,我从0开始,直到最后一个可用时段。现在,我的代码是: 如果绘制图形,您将看到x轴是周期数。然而,当我尝试实现日期(即索引)时,只要我有18个句点而不是36个

  • 我不熟悉plotly,我正在使用px创建甘特图。时间表。我的数据集中有三类数据,一类是具有开始和结束时间的普通任务,另一类是开始和结束时间相同的两种类型的任务。我希望普通任务是一个矩形(这是如何绘制的),其他两个任务有一个沙漏标记和一个三角形标记,而不是一条很细的线? 这是我的数据的样子: 样本数据: 代码: 例子: Excel中的样本图 我有什么办法可以做到这一点吗? 谢谢!

  • 问题内容: 我希望在Web应用程序中以树状结构显示数据。我希望将Angular用于此任务。 看起来ng-repeat可以让我遍历节点列表,但是当给定节点的深度增加时,该如何嵌套呢? 我尝试了以下代码,但是HTML的自动转义阻止了此操作。另外,结束ul标签放在错误的位置。 我很确定我将完全以错误的方式解决这个问题。 有任何想法吗? 问题答案: 看看这个小提琴 原文:http: //jsfiddle.

  • 问题内容: 我喜欢旧的Java小程序。但是因为我真的很喜欢JFX的工作方式,所以我想使用JFX编写一些游戏(甚至是游戏制作系统,谁知道?),但是我希望能够将它们发布到我的网站上。人们将如何去做呢? 问题答案: 是的,您应该可以将JavaFX嵌入到您的网页中: http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deploymen

  • 问题内容: 我是jni的新手,如果可以使用jni实现需要完成的工作,我会感到非常困惑。我想制作一个Java api,它将使用jdbc更新数据库,但是将从C ++程序调用此特定api。 因此,我认为我可能应该编写通过jdbc访问数据库的jni代码(甚至可能吗?),创建C 代码并生成dll,以便其他C 程序可以调用dll来更新数据库。这一切可能吗?如果是这样,我如何在jni中真正调用jdbc?如果最终

  • 甘特图用于比较类别之间的数据。此外,它还可用于识别每个过程所花费的时间。 它显示了一段时间内任务值的进展。它在一段时间内广泛用于项目管理和其他类型的变异研究。 除时间维度外,甘特图也采用维度和度量。 例如,使用Sample-Superstore数据源,可以按照每种类型的发运模式进行运输。对于创建,甘特图遵循程序如下: 第1步:转到工作表。 单击“标记(Marks)”窗格中的下拉按钮。 从给定列表中