【问题标题】:How can I have more than 4 section colours in mermaid (Gantt) via DiagrammeR?如何通过 DiagrammeR 在美人鱼(甘特图)中拥有 4 种以上的部分颜色?
【发布时间】:2016-02-10 10:05:00
【问题描述】:

我必须每天生成一个甘特图。我的想法是使用 R 的 DiagrammeR 包中包含的美人鱼 api。

我的数据将始终具有相同的结构,因此,我创建了一个非常原始的解析器,该解析器包含在可重现的示例中。

我面临的问题是,在 4 个部分之后,样式又从零开始:

rect.section.section0
rect.section.section1
rect.section.section2
rect.section.section3
rect.section.section0

我可以从 .css 更改 rect.section.sectionx 颜色,但我无法添加新的颜色。

有没有办法改变/个性化部分的颜色/样式?

我的R 可重现示例:

library(DiagrammeR)
library(htmltools)

fromdftogantt<-function(df,Title="Proba",filename="proba.html"){
  txt<-paste("gantt","dateFormat  YYYY-MM-DD",paste("title",Title),"",sep="\n")
  for(i in unique(df$section)){
    txt<-paste(txt,paste("section",i),sep="\n")
    for(j in which(df$section==i)){

      txt<-paste(txt,paste0(df$name[j],":",df$status[j],",",
                            df$fecini[j],",",
                            df$fecfin[j]),sep="\n")
    }
    txt<-paste0(txt,"\n")
  }
  m<-mermaid(txt)
  m$x$config = list(ganttConfig = list(
    axisFormatter = list(list(
      "%m-%Y" 
      ,htmlwidgets::JS(
        'function(d){ return d.getDate() == 1 }' 
      )
    ))
  ))
  save_html(as.tags(m),file=filename)
}

df<-data.frame(section=letters[1:6],name=paste("Name",1:6),
               status=rep("active",6),
               fecini=as.Date(c("2015-02-03","2015-03-05","2015-04-07",
                                "2015-02-03","2015-03-05","2015-04-07")),
               fecfin=as.Date(c("2015-06-01","2015-04-30","2015-12-31",
                                "2015-06-01","2015-04-30","2015-12-31")),
               stringsAsFactors = FALSE)

fromdftogantt(df,Title="Proba",filename="proba.html")

【问题讨论】:

  • 有点小技巧,但您可以更改库的DiagrammeR.js 文件中的numberSectionStyles(位于此文件夹/Library/Frameworks/R.framework/Versions/3.2/Resources /library/DiagrammeR/htmlwidgets 给我)。这将增加部分的数量。您还需要为这些添加 css。如果您希望仅针对其中一个图表进行此更改,则可以更改放置 html 文件的目录中的 lib 文件夹中的相同文件。
  • 不是最 R 的方式,但肯定可以解决问题。更新软件包时我必须小心,但解决了我的特定问题。

标签: r diagrammer mermaid


【解决方案1】:

您根本不需要更改 .js 文件。 mermaid 支持 numberSectionStyles 配置参数。只需在保存 HTML 之前将以下行添加到您的 R 函数中:

m$x$config$ganttConfig$numberSectionStyles = 6

您仍需要调整 .css 文件,以在与现有模板相同的模板之后添加其他部分。

【讨论】:

    猜你喜欢
    • 2019-01-09
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    相关资源
    最近更新 更多