1

通常のデータベースからのパラメーターの結果を示す既存のggplot2散布図があります。次に、このグラフに2つのポイントを追加して、コマンドライン引数としてスクリプトに渡します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%信頼区間内にあるかどうかを確認したいと思います。ここに画像の説明を入力してください

4

1 に答える 1

3

あなたの例は再現できません。データと再現可能な例を作成することは本当に建設的です。時間の無駄ではありません。解決策として、コメントにそれが書かれていることを書きます。新しいデータで新しいレイヤーを追加します。

  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(Age = sample(15:36,50、rep = 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)

ここに画像の説明を入力してください

于 2013-03-01T14:38:50.707 に答える