在使用nplot / rCharts制作NVD3 scatterChart时访问点的形状属性

时间:2013-09-27 19:36:17

标签: r nvd3.js rcharts

在使用rCharts中的nplot构建scatterChart时,如何设置点的shape属性?可以通过在名为“size”的输入数据框中提供一个列来设置点大小,但是如果存在由诸如“square”或“cross”之类的字符串组成的相应“shape”列,则结果图仍然具有默认的圆点。 R和NVD3的新手,所以我为自己缺乏词汇而道歉。

3 个答案:

答案 0 :(得分:1)

似乎最新版本的nvd3不再与旧版本相同。请参阅examplescreenshot显示形状,数据为shape:,但只有圆形在实际图表中呈现。此外,tests除圆圈外不会产生任何其他内容。我瞥了一眼光源,我找不到在哪里或如何设置形状。如果您知道如何处理nvd3,我可以很容易地转换为rCharts示例。

答案 1 :(得分:1)

我没有50的声誉,但我想发表评论。

this NVD3 example(Novus.github)中的第18行显示了它目前是如何完成的。同样,您需要对live code(nvd3.org)所做的只是取消注释' size'数据选项卡中的行。

我尝试在我的df中创建一个名为&#39; shape&#39;的列,并使用n1 <- nPlot(x~y, data=df, shape='shape', type='scatterChart'); n1$chart(onlyCircles=FALSE);和其他一些组合。我过去两天只与rCharts合作,但取得了一些令人兴奋的进展。我放弃了这一点,但发现很奇怪这两个例子在这里都没有提到,所以我想我会提到它们。

答案 2 :(得分:0)

我知道这个问题有点古老&#34;但是我遇到了同样的问题,我花了一些时间来找出如何改变形状。

我按照此示例中的方法更改了大小: nvd3 scatterPlot with rCharts in R: Vary size of points?

这是我的解决方案:

library(rCharts)
df=data.frame(x=rep(0:2,3),y=c(rep(1,3),rep(2,3),rep(3,3)),
group=c(rep("a",3),rep("b",3),rep("c",3)),shape=rep("square",9))

p <- nPlot(y~x , group = 'group',data = df, type = 'scatterChart')

#In order to make it more pleasant to look at
p$chart(xDomain=c(-0.5,2.5))
p$chart(yDomain=c(0,4))
p$chart(sizeRange = c(200,200))

#here the magic
p$chart(scatter.onlyCircles = FALSE)
p$chart(shape = '#! function(d){return d.shape} !#')

p