使用rCharts创建NVD3半圆形甜甜圈

时间:2015-07-09 08:19:40

标签: r nvd3.js rcharts donut-chart

我正在尝试使用rChartsNVD3 javascript库创建一个简单的半圆形甜甜圈。下面提供了完整甜甜圈的最小可重复示例。

library(rCharts)
data1 <- data.frame(label=c("A","B","C"), value=c("1000","2000","3000"))
n1 <- nPlot(value~label, data = data1, type = "pieChart")
n1$chart(donut=TRUE)
n1

当我尝试在NVD3文档中指定提供herestartAngleendAngle选项时,我的问题就出现了,以便将此甜甜圈转换为半圆形甜甜圈。

# This gives me a blank Viewer pane
n1$chart(donut=TRUE,
         startAngle="#!function(d){return d.startAngle/2-Math.PI/2;}!#",
         endAngle="#!function(d){return d.endAngle/2-Math.PI/2;}!#")
n1

查看来自this问题的代码,似乎将startAngleendAngle传递给n1$params$chart可能不是正确的方法,尽管这是基于donut=TRUE的工作原理我会期望。

我的一个回调函数也可能有不正确的语法 - 根据我的经验,这种问题可能会导致整个可视化崩溃。但是,我相当确定我使用了与NVD3文档中提供的完全相同的回调函数。

1 个答案:

答案 0 :(得分:1)

rCharts库不允许您按原样执行此操作。我分叉并修改它以包含最新的nvd3 JavaScript,并添加了通过R中的。$ pie函数向chart.pie添加参数的可能性。

您可以在此处抓取rCharts分叉:https://github.com/clecocel/rCharts

基于rCharts的快速入门的最小示例:

p5 <- nPlot(~ cyl, data = mtcars, type = 'pieChart')
p5

您会看到growOnHover选项现在默认已激活。

要制作半甜甜圈,您现在确实可以使用:

p5$chart(donut=T)
p5$pie(startAngle="#!function(d){return d.startAngle/2-Math.PI/2;}!#",
       endAngle="#!function(d){return d.endAngle/2-Math.PI/2;}!#"))