R 绘图中图例中的方框和线条

6

我已经做了一个图表,但在图例部分遇到了一个小问题,让我很烦恼。

我找不到一种方法来使图例中的框居中显示。

x=seq(-4,4,length=200)
 y=dnorm(x,mean=0.816783035,sd=0.862916258)
 plot(x,y,type="l",lwd=2,col="red" , xlim=c(-4, 4) ,  ylab="probabilitiy", xlab="")


 #Shaded Area TBR!
 c= -0.211653725


 x=seq(-4,4,length=200)
 y=dnorm(x,mean=-0.393475584,sd=0.895660247)
 lines(x,y,type="l",lwd=2,col="blue")


 legend("topright", legend = c('TBR', 'TBF', 'Criterion', 'Hit'), 
               bty = "n",
               col = c("green", "blue", "red",NA),
               lty = c(1,1,1,NA),
               density=c(0,0,0,10),
               fill = c("green", "blue", "red","red"),
               border = c(NA,NA,NA,"red"),
               )
 abline(v= c)

 x1 = seq(c,4, length = 200)
 y1 = dnorm(x1,mean=0.816783035,sd=0.862916258)

polygon(c(c,x1) ,c(0, y1),density= 3, col="red")

enter image description here

1个回答

7
我想你需要调整 "x.intersp" 参数。可以尝试以下方法:
x=seq(-4,4,length=200)
 y=dnorm(x,mean=0.816783035,sd=0.862916258)
 plot(x,y,type="l",lwd=2,col="red" , xlim=c(-4, 4) ,  ylab="probabilitiy", xlab="")


 #Shaded Area TBR!
 c= -0.211653725


 x=seq(-4,4,length=200)
 y=dnorm(x,mean=-0.393475584,sd=0.895660247)
 lines(x,y,type="l",lwd=2,col="blue")


 legend("topright", legend = c('TBR', 'TBF', 'Criterion', 'Hit'), 
               bty = "n",
               col = c("green", "blue", "red",NA),
               lty = c(1,1,1,NA),
               density=c(0,0,0,10),
               fill = c("green", "blue", "red","red"),
               border = c(NA,NA,NA,"red"), 
               x.intersp=c(2,2,2,0.5)
               )
 abline(v= c)

 x1 = seq(c,4, length = 200)
 y1 = dnorm(x1,mean=0.816783035,sd=0.862916258)

polygon(c(c,x1) ,c(0, y1),density= 3, col="red")

在此输入图像描述

这个能满足你的需求吗?


看起来没问题,不过 c(1,1,1,-0.5) 可能更适合,因为它似乎不会改变图例其他部分的间距。 - thelatemail

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接