首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-使用ggplot创建断层扫描图

R-使用ggplot创建断层扫描图
EN

Stack Overflow用户
提问于 2018-11-13 01:56:36
回答 1查看 46关注 0票数 0

我有以下图表:

代码语言:javascript
复制
set.seed(123456)
test1_1 <- round(rnorm(20,mean=40,sd=5),0)/100
test1_2 <- round(rnorm(20,mean=60,sd=5),0)/100
test.data <- as.data.frame(cbind(test1_1,test1_2))
test <- ggplot(test.data, aes(test1_1,test1_2))+
  geom_point()+
  scale_y_continuous(limits = c(0, 1)) +
  scale_x_continuous(limits = c(0, 1)) +   # OP missing `+`
  abline(0.5,0.5)
test

现在我有了点,这些点是用下面的公式创建的:

代码语言:javascript
复制
line <- function(beta_2, test1_1,test1_2){
beta_1 = (test1_2/(1-test1_1))-(test1_1/(1-test1_1))*beta_2
return(beta_1)}


  output1 <- as.data.frame(matrix(0,20,1))
  beta_2 <- 1
  for (i in 1:nrow(test.data)){
    output1[i,] <- line(beta_2,test.data[i,1],test.data[i,2])
  }

  output2 <- as.data.frame(matrix(0,20,1))
  beta_2 <- 0
  for (i in 1:nrow(ei.data)){
    output2[i,] <- line(beta_2,test.data[i,1],test.data[i,2])
  }

  output <- cbind(output1,output2)

我希望将第二个数据框中的数据添加为上面创建的曲线图中的线(始终每行连接点)。但是,使用

代码语言:javascript
复制
abline(output[1,1],output[1,2])

不起作用。我怎样才能做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2018-11-13 02:41:34

Geom_abline()是基本R的语法,对于ggplot2,你需要使用geom_abline(output1,1,output1,2)

代码语言:javascript
复制
ggplot(test.data, aes(test1_1,test1_2)) + 
geom_point()+
scale_y_continuous(limits = c(0, 1))+
scale_x_continuous(limits = c(0, 1)) + 
geom_abline(slope = output[1,1],intercept = output[1,2])

注意:你的reproducible有一个错误,其中使用了ei.data而不是test.data,并且你的ggplot调用的一部分缺少了+号,我只是指出这一点,这样其他人(或你)就不会在没有意识到的情况下陷入一个单独的错误中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53267611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档