在rcharts NVD3 lineChart中的绘图区域

时间:2015-03-24 12:45:26

标签: r nvd3.js area linechart rcharts

我想使用像http://nvd3.org/examples/line.html中的area = true选项,使用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

我发现的问题是我无法将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中使用此类图表的区域选项,还是目前超出图书馆的范围?

3 个答案:

答案 0 :(得分:3)

这大致是你正在寻找的吗?

enter image description here

我通过添加行

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

代码。看起来将boolean区域设置为true的函数称为isArea(documentation)。

答案 1 :(得分:3)

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

例如,使用:

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

此处d是数据。

你得到:

enter image description here

答案 2 :(得分: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