2015-03-24 5 views
10

Я хочу рассказать о распределении разных популяций с графиком линии NVD3 rCharts с использованием параметра area = true, например, в http://nvd3.org/examples/line.html.Площадь участка в rcharts NVD3 lineChart

Вот то, что я работаю на:

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 

Проблема я считаю, что я не могу переключить параметр области истина. Я пробовал:

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!#')) 

В результате во всех из них является пустой участок. Есть ли способ использовать параметр области для этого типа графиков изнутри rCharts или он находится за пределами доступности библиотеки в настоящее время?

ответ

3

Вы можете использовать функцию isArea в качестве предлагаемого @seaotternerd и использовать пользовательскую функцию javascript, чтобы конкретно установить, какой параметр области вы хотите установить равным true.

Для примеров, с помощью:

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

Здесь d представляет данные.

Вы получаете:

enter image description here

+0

Это то, что я искал. Тайнс, я не был уверен, могу ли я использовать функцию с isArea. –

1

смены типа 'stackedAreaChart'

Это то, что вы после этого?

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 

Если вы хотите совместить типы диаграмм (как в примере, Вы связываетесь с) вы должны использовать type = 'multiChart' увидеть пример here

+0

То, что я ищу это линейный график, в котором одна из линий его площадь заполнена, а другой не имеет. «stackedAreaChart» предназначен для многоуровневых временных рядов, т. Е. Продает продукт во времени по сегменту, а «multiChart» используется, когда требуются две оси y, то есть цена и продажи с течением времени. В моем случае я хочу одну и ту же ось y для обеих линий, и мне не нужны количества, чтобы добавить один на другой. –

3

Это примерно то, что вы ищете?

enter image description here

Я достиг этого, добавив строку

denp$chart(isArea=TRUE) 

к коду. Похоже, что функция для установки области boolean на true называется isArea (documentation).

+0

Это ближе к тому, что я ищу. Однако я хотел бы, чтобы одна из групп была областью, а другая - линией. Я не смог установить isArea в TRUE или FALSE в зависимости от группы. –

Смежные вопросы