0

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

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 文档中提供的和选项时,我的问题出现了startAngle以便endAngle将此甜甜圈转换为半圆形甜甜圈。

# 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

查看来自这个问题的代码,似乎传递startAngleendAngle传递n1$params$chart可能不是正确的方法,尽管这是我所期望的,基于donut=TRUE有效的事实。

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

4

1 回答 1

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;}!#"))
于 2016-04-27T00:33:01.370 回答