将数据点添加到现有的散点图
我有一个现有的ggplot2散点图,它显示了一个参数与普通数据库的结果。然后我想添加两个额外的点到这个图,我将作为命令行参数传递给我的脚本script age value1 value2
。我想在每个点上面用r和l geom_text显示这些点为红色。我有以下的代码,到目前为止,但不知道如何添加临门一脚将数据点添加到现有的散点图
pkgLoad <- function(x)
{
if (!require(x,character.only = TRUE))
{
install.packages(x,dep=TRUE, repos='http://star-www.st-andrews.ac.uk/cran/')
if(!require(x,character.only = TRUE)) stop("Package not found")
}
}
pkgLoad("ggplot2")
#load current normals database
df<-data.frame(read.csv("dat_normals.txt", sep='\t', header=T))
args<-commandArgs(TRUE)
#specify what each argument is
age <- args[1]
rSBR <- args[2]
lSBR <- args[3]
# RUN REGRESSION AND APPEND PREDICTION INTERVALS
lm_fit = lm(SBR ~ Age, data = df)
sbr_with_pred = data.frame(df, predict(lm_fit, interval='prediction'))
p <- ggplot(sbr_with_pred, aes(x=Age, y=SBR)) +
geom_point(shape=19, alpha=1/4) +
geom_smooth(method = 'lm', aes(fill = 'confidence'), alpha = 0.5) +
geom_ribbon(aes(y = fit, ymin = lwr, ymax = upr,
fill = 'prediction'), alpha = 0.2) +
scale_fill_manual('Interval', values = c('green', 'blue')) +
theme_bw() +
theme(legend.position = "none")
ggsave(filename=paste("/home/data/wolf/FV_DAT/dat_results.png",sep=""))
browseURL(paste("/home/data/wolf/FV_DAT/dat_results.png",sep""))
从本质上讲,我想看看2个新的点落在95%的置信区间内,从正常的数据库(蓝带)
您的示例不可重现。创建数据和可重复的示例非常有建设性。这不是浪费时间。对于解决方案,我写了评论中所说的内容。用新数据添加一个新图层。
newdata <- data.frame(Age = args[1],
SBR = c(args[2],args[3]))
p + geom_point(data=newdata,colour="red",size=10)
例如:
sbr_with_pred < - data.frame(年龄=样品(15:36,50,代表= T), SBR = RNORM(50))
p <- ggplot(sbr_with_pred, aes(x=Age, y=SBR)) +
geom_point(shape=19, alpha=1/4) +
geom_smooth(method = 'lm', aes(fill = 'confidence'), alpha = 0.5)
args <- c(20,rnorm(1),rnorm(2))
newdata <- data.frame(Age = args[1],
SBR = c(args[2],args[3]))
p + geom_point(data=newdata,colour="red",size=10)
对不起,我不明白。数据不可重现的是什么意思? sbr_with_pred data_frame由以前的测量结果而非随机样本构成。蓝色带应该包含95%的数据点和面积。 – moadeep 2013-03-01 15:16:41
编辑:通过正常 - 我的意思是这些结果是从没有我们正在调查的诊断的患者测量的 – moadeep 2013-03-01 15:17:49
它不是在sens中重现的,我不能在我的机器中重现您的情节。即使它们是测量数据,您也可以对它们进行采样并给出一个可重复的示例。有关更多详细信息,请参阅[this](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – agstudy 2013-03-01 15:46:09
为什么所有这些细节?请你能更简洁一些。我错过了一些东西,但是你想添加一个新的图层和新的data.frame? – agstudy 2013-03-01 13:28:10
我想添加2个新的数据点,并将这些结果与正常的数据库进行比较。这些点是否落在95%的置信区间内(即正常范围) – moadeep 2013-03-01 14:14:48
我认为你只是做'p + geom_point(data = newdata,color =“red”)'其中'newdata'是一个格式相同的数据框(即匹配列名称)作为原始数据集。请注意,你目前的例子是不可重现的...... http://tinyurl.com/reproducible-000 – 2013-03-01 14:27:49