rcharts NVD3 lineChart 中的绘图区域

Plot area in rcharts NVD3 lineChart

我想使用 area=true 选项使用 rCharts 的 NVD3 线图绘制不同人口的分布,如 http://nvd3.org/examples/line.html

这是我正在做的事情:

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

我发现的问题是我无法将 area 参数切换为 true。 我试过:

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 中为这种类型的图表使用区域选项,或者它目前是否超出了图书馆的范围?

将类型更改为 '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

如果您想合并图表类型(如您 link 的示例),您必须使用 type = 'multiChart' 查看示例 here

这大概就是您要查找的内容吗?

我通过添加行

实现了这一点
denp$chart(isArea=TRUE)

到你的代码。看起来将区域布尔值设置为 true 的函数称为 isArea (documentation).

您可以按照@seaotternerd 的建议使用isArea 函数,并使用自定义javascript 函数专门设置您想要设置为true 的区域参数。

例如,使用:

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

这里d是数据

你得到: