Będę musiał generować wykres Gantta codziennie. Moim pomysłem jest użycie syreny api zawartej w pakiecie R's DiagrammeR.Jak mogę uzyskać więcej niż 4 kolory sekcji w syrenie (Gantt) przez DiagrammeR?
Moje dane będą zawsze miały tę samą strukturę i dlatego utworzyłem dość prymitywny analizator składni, który jest zawarty w odtwarzalnym przykładzie.
Problemem jest to, że mam twarz po 4 odcinkach stylizacji rozpoczyna się ponownie od zera:
rect.section.section0
rect.section.section1
rect.section.section2
rect.section.section3
rect.section.section0
mogę zmienić rect.section.sectionx
kolor z .css ale nie mogę dodać nowych.
Czy istnieje sposób na zmianę/personalizację koloru/stylizacji sekcji?
My R
powtarzalny przykład:
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")
Trochę brudnej sztuczki, ale możesz zmienić "numerSectionStyles" w pliku "DiagrammeR.js" biblioteki (znajduje się w tym folderze /Library/Frameworks/R.framework/Versions/3.2/Resources/library/ DiagrammeR/htmlwidgets dla mnie). Zwiększy to liczbę sekcji. Będziesz także musiał dodać css dla tych. Jeśli chcesz tę zmianę tylko dla jednego ze swoich diagramów, możesz zmienić ten sam plik w folderze 'lib' w katalogu, w którym umieszczasz swój plik HTML. – NicE
Nie najbardziej R sposób, ale na pewno robi lewę. Będę musiał zachować ostrożność podczas aktualizacji pakietów, ale rozwiązuje mój konkretny problem. –