2015-11-09 3 views
13

Ich werde täglich ein Gantt-Diagramm erstellen müssen. Meine Idee ist es, die Meerjungfrau api zu verwenden, die im R-Diagram-Paket enthalten ist.Wie kann ich über DiameterR mehr als 4 Schnittfarben in Meerjungfrau (Gantt) haben?

Meine Daten werden immer die gleiche Struktur haben, und daher habe ich einen ziemlich primitiven Parser erstellt, der im reproduzierbaren Beispiel enthalten ist.

Das Problem, das ich Gesicht ist, dass nach 4 Abschnitten das Styling beginnt wieder von Null:

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

I rect.section.sectionx Farbe aus der CSS- ändern kann, aber ich kann nicht neue hinzufügen.

Gibt es eine Möglichkeit, die Farbe/das Styling des Bereichs zu ändern/anzupassen?

Mein R reproduzierbaren Beispiel:

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") 
+3

ein bisschen ein schmutziger Trick, aber Sie können die 'numberSectionStyles' in der' DiagrameR.js' Datei der Bibliothek ändern (es ist in diesem Ordner /Library/Frameworks/R.framework/Versions/3.2/Resources/library/ DiagramR/htmlwidgets für mich). Dies erhöht die Anzahl der Abschnitte. Sie müssen auch CSS für diese hinzufügen. Wenn Sie diese Änderung nur für eines Ihrer Diagramme wünschen, können Sie die gleiche Datei im 'lib'-Ordner in dem Verzeichnis ändern, in dem Sie Ihre HTML-Datei ablegen. – NicE

+0

Nicht die meisten R-Weg, aber sicherlich den Trick. Ich muss vorsichtig sein, wenn ich die Pakete aktualisiere, aber löst mein spezielles Problem. –

Antwort

1

Sie brauchen nicht auf alle JS-Datei zu ändern. mermaid unterstützt einen numberSectionStyles Config-Parameter. Fügen Sie einfach die folgende Zeile in die R-Funktion, bevor Sie die HTML speichern:

m$x$config$ganttConfig$numberSectionStyles = 6 

Sie werden immer noch die CSS-Datei anpassen müssen die zusätzlichen Abschnitte im Anschluss an die gleiche Vorlage wie die bestehenden hinzuzufügen.

Verwandte Themen