2015-03-24 10 views
10

Ich möchte die Verteilung von verschiedenen Populationen mit NVRD3 lineChart Diagramm rCharts mit der Option Fläche = True wie in http://nvd3.org/examples/line.html plotten.Plot-Bereich in Rcharts NVD3 lineChart

Hier ist, was ich arbeite:

require(devtools) 
install_github('ramnathv/rCharts') 
require(rCharts) 

df<-data.frame(X=rep(1:4,2),Y=1:8,fil=c(rep("A",4),rep("B",4))) 

denp <- nPlot(Y ~ X, group = 'fil', data = df, type = 'lineChart') 
denp$chart(color =c('#ff7f0e', 'blue', 'green')) 
denp$yAxis(axisLabel= 'Density') 
denp$xAxis(axisLabel= 'Value') 
denp$chart(margin = list(left=80,bottom=80)) 
denp$yAxis(tickFormat = "#!function (x,y,e) { return }!#") 
denp$xAxis(tickFormat = "#!function (x,y,e) { 
tickformat = ['0,01','0,1',1,10,100,1000,10000,'100k']; 
return tickformat[x+2];}!#") 
denp$chart(tooltipContent = "#! function(key, val, e, graph){ 
return '<h3>' + '<font color=blue>'+ key +'</font>'+ '</h3>' + '<p>'+ val } !#") 

denp 

Das Problem ich finde, ist, dass ich nicht in der Lage bin der Bereich Parameter auf true zu wechseln. Ich habe versucht:

denp$chart(area=TRUE) 
denp$chart(area=c(TRUE,TRUE,TRUE)) 
denp$chart(area=c('true')) 
denp$chart(area=c('true','true','true')) 
denp$chart(area=c('#!true!#')) 
denp$chart(area=c('#!true!#','#!true!#','#!true!#')) 

Das Ergebnis in allen von ihnen ist ein leeres Grundstück. Gibt es eine Möglichkeit, die Bereichsoption für diesen Grafiktyp innerhalb von rCharts zu verwenden, oder liegt sie derzeit außerhalb der Reichweite der Bibliothek?

Antwort

3

können Sie verwenden, um die isArea Funktion als @seaotternerd vorgeschlagen und eine benutzerdefinierte verwenden JavaScript-Funktion, welcher Bereich Parameter Sie auf true gesetzt möchten gezielt eingestellt.

Beispiele, mit:

denp$chart(isArea="#! function(d) { 
      if(d.key=='A') return true; 
      } !#") 

Hier d die Daten vorhanden sind.

Sie erhalten:

enter image description here

+0

Das ist, was ich gesucht habe. Tahnks, ich war mir nicht sicher, ob ich eine Funktion mit isArea verwenden könnte. –

1

ändern Typ 'stackedAreaChart'

Ist das, was Sie nach?

denp <- nPlot(Y ~ X, group = 'fil', data = df, type = 'stackedAreaChart') 
denp$chart(color =c('#ff7f0e', 'blue', 'green')) 
denp$yAxis(axisLabel= 'Density') 
denp$xAxis(axisLabel= 'Value') 
denp$chart(margin = list(left=80,bottom=80)) 
denp$yAxis(tickFormat = "#!function (x,y,e) { return }!#") 
denp$xAxis(tickFormat = "#!function (x,y,e) { 
tickformat = ['0,01','0,1',1,10,100,1000,10000,'100k']; 
return tickformat[x+2];}!#") 
denp$chart(tooltipContent = "#! function(key, val, e, graph){ 
return '<h3>' + '<font color=blue>'+ key +'</font>'+ '</h3>' + '<p>'+ val } !#") 

denp 

Wenn Sie Diagrammtypen kombinieren möchten (wie in dem Beispiel, das Sie verlinken auf) Sie type = 'multiChart' verwenden Sehen Sie ein Beispiel here

+0

Was für ich suche ist ein Liniendiagramm, in dem eine der Leitungen hat seine Fläche gefüllt, während die andere nicht. "stackedAreaChart" ist für gestapelte Zeitreihen gedacht, d. H. Verkäufe eines Produkts über die Zeit nach Segmenten, und der "multiChart" wird verwendet, wenn zwei y-Achsen erforderlich sind, d. In meinem Fall möchte ich die gleiche y-Achse für beide Zeilen und ich brauche keine Mengen, um eine auf der anderen hinzuzufügen. –

3

Ist das in etwa, was Sie suchen?

enter image description here

ich erreicht dieses

denp$chart(isArea=TRUE) 

an Ihrem Code die Zeile hinzufügen. Sieht aus wie die Funktion, um den Bereich boolesch auf wahr zu setzen, heißt isArea (documentation).

+0

Es ist näher an dem, was ich suche. Ich möchte jedoch, dass eine der Gruppen eine Fläche und die andere eine Linie ist. Ich konnte isArea nicht auf TRUE oder FALSE setzen, abhängig von der Gruppe. –