2013-07-26 12 views
7

Ich verwende die Funktion rCharts , um gestapelte oder gruppierte Balkendiagramme anzuzeigen, die Daten vom Typ Kontingenztabelle enthalten. Das "multiBarChart" wird in einer glänzenden Anwendung angezeigt. Ein Teil des Codes, den ich in meiner glänzenden Anwendung verwende, ist unten angegeben.Achsenbeschriftungen einstellen NVD3-Grafik in rCharts

graphData <- reactive({ 
    as.data.frame(table(eval(inputVar1()),eval(inputVar2()))) 
    }) 

    output$myChart <- renderChart({ 
    p1 <- nPlot(Freq ~ Var1, group="Var2", data=graphData(), type="multiBarChart") 
    p1$addParams(dom='myChart') 
    return(p1) 
    }) 

In meinem Datensatz hat eine kategoriale Variable 16 Stufen. Wenn diese Variable entlang der x-Achse von "multiBarChart" angezeigt wird, werden nicht alle Beschriftungen angezeigt. Gibt es eine Möglichkeit, in nPlot die Schriftgröße von Achsenbeschriftungen anzupassen? Ich denke etwas wie cex.axis=0.5 oder cex.lab=0.5 oder so ähnlich.

Alternativ gibt es einen Parameter wie las=, der es mir erlauben würde, die Achsenbeschriftung um 90 Grad zu drehen und vielleicht ein saubereres Diagramm zu haben, bei dem alle Beschriftungen der kategorialen Variablen entlang der x-Achse des Diagramms angezeigt werden.

Jeder Rat, den die Gruppe zur Verfügung stellen könnte, wird sehr geschätzt !!

Antwort

11

Die Antwort auf Ihre Frage kann here gefunden werden. Die Grundidee besteht darin, die Option reduceXTicks auf FALSE zu setzen und auch die Labels zu staffeln.

Wenn die Beschriftungen groß sind, können Sie die Größe des Textes mit CSS steuern. Im Moment müssten Sie dies manuell in Ihren HTML-Code einfügen, aber in der zukünftigen Version von rCharts, werde ich es einfach machen, beliebige HTML/CSS/JS zu Ihrem Diagramm hinzuzufügen, direkt von der R-Konsole aus.

<style> 
svg text {font-size: 9px;} 
</style> 
+0

Arbeitete perfekt ... danke Ramnath !! BTW ... Liebe rCharts !! – Chris

+0

Froh, dass es funktioniert hat! – Ramnath

+1

Ich denke, das würde den Code etwas weniger manuell einfügen '' n1 $ setTemplate (afterScript = '') '' – PatrickT

Verwandte Themen