rCharts Polychart:向绘图添加水平或垂直线条

时间:2013-11-20 22:00:34

标签: r ggplot2 rcharts polychart

我在理解如何使用rPlot包中的rCharts功能自定义图表时遇到一些麻烦。说我有以下代码

#Install rCharts if you do not already have it
#This will require devtools, which can be downloaded from CRAN
require(devtools)
install_github('rCharts', 'ramnathv')

#simulate some random normal data
x <- rnorm(100, 50, 5)
y <- rnorm(100, 30, 2)

#store in a data frame for easy retrieval
demoData <- data.frame(x,y)

#generate the rPlot Object
demoChart <- rPlot(y~x, data = demoData, type = 'point')

#return the object // view the plot
demoChart

这将生成一个情节,这很好,但我如何沿着y轴添加水平线?例如,如果我想绘制一条代表平均y值的绿线,然后绘制红线代表平均值+/- 3标准偏差?如果有人知道某些文档并且可以指向我那么那将是很好的。但是,我能找到的唯一文档是在polychart.js(https://github.com/Polychart/polychart2)上,我不太确定如何将它应用于R中的rCharts rPlot函数。

我已经做了一些挖掘,我觉得答案将与在layers对象中添加/修改parameter rPlot有关。

#look at the slots in this object
demoChart$params$layers

#doing this will return the following output (which will be different for
#everybody because I didn't set a seed). Also, I removed rows 6:100 of the data.

demoChart$params$layers
[[1]]
[[1]]$x
[1] "x"

[[1]]$y
[1] "y"

[[1]]$data
       x        y
1   49.66518 32.75435
2   42.59585 30.54304
3   53.40338 31.71185
4   58.01907 28.98096
5   55.67123 29.15870


[[1]]$facet
NULL

[[1]]$type
[1] "point"

如果我想到这一点,我会发布一个解决方案,但我同时感谢任何帮助/建议!我在使用R中的对象时没有多少经验。我觉得这应该与ggplot2有一些相似之处,我也没有多少经验。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:3)

您可以使用图层将其他图形叠加到rCharts图上。将任何其他图层的值添加为原始data.frame的列。 copy_layer允许您使用额外图层中data.frame的值。

# Regression Plots using rCharts
require(rCharts)

mtcars$avg <- mean(mtcars$mpg)
mtcars$sdplus <- mtcars$avg + sd(mtcars$mpg)
mtcars$sdneg <-  mtcars$avg - sd(mtcars$mpg)

p1 <- rPlot(mpg~wt, data=mtcars, type='point')

p1$layer(y='avg', copy_layer=T, type='line', color=list(const='red'))
p1$layer(y='sdplus', copy_layer=T, type='line', color=list(const='green'))
p1$layer(y='sdneg', copy_layer=T, type='line', color=list(const='green'))

p1 

以下是一些示例:一个来自主rCharts website,另一个展示如何overlay a regression line