如何在R中绘制背景

时间:2015-08-14 07:59:47

标签: r plot ggplot2

所以,我在R中使用曲线创建了一个t-dist图,并在其上添加了多边形。它给了我一个基本的情节。

我需要的是一个更好看的情节

  • X轴从-6
  • 开始
  • Y轴从0开始
  • 情节的背景(曲线下除外)填充了我需要的一些颜色

我认为我需要使用ggplot2包,所以我需要的是基于ggplot2用法的答案。或者任何可以让我回答输出的答案。

这是我的代码

curve(dt(x, df = 7), from = -6, to = 6)
x <- seq(-1.96, -6, len = 100)
y <- dt(x, 7)
x1 <- seq(1.96, 6, len = 100)
y1 <- dt(x1, 7)

polygon(c(x1[1], x1, x1[100]), c(dt(-6, 7), y1, dt(6, 7)),
        col = "#b14025", border = "black")

polygon(c(x[1], x, x[100]), c(dt(-6, 7), y, dt(6, 7)),
        col = "#b14025", border = "black")

第一张图片是当前的输出

第二张图片是我认为应该是什么样子

"Here is the current output"

"Here is what I think it should look like"

2 个答案:

答案 0 :(得分:1)

以下是使用ggplot2包获得类似结果的一种方法:

library(ggplot2)
dt_tails <- function(x){
 y <- dt(x,7)
 y[abs(x) < 1.96] <- NA
 return(y)
}
dt_7 <- function(x) dt(x,7)
p <- ggplot(data.frame(x=c(-6,6)),aes(x=x)) + 
      stat_function(fun=dt_7, geom="area", fill="white", colour="black") 
p <- p + stat_function(fun=dt_tails, geom="area", fill='#b14025') 
p <- p + theme(panel.grid.major=element_blank(), 
               panel.grid.minor=element_blank(),
               panel.background=element_rect(fill="#eae9c8") )
plot(p)

enter image description here

答案 1 :(得分:0)

我终于设法使用基本绘图功能。

  • 对于曲线外的区域:我刚刚添加了一个多边形来跟踪曲线外的区域。

  • 为了将图形固定在所需的X和Y处,我使用了绘图函数xaxs&amp;的另一个参数。来自此Link

  • 的yaxs

这是我的附加代码

curve(dt(x, df = 7), from = -6, to = 6,xaxs="i",yaxs="i",ylim=c(0,0.4))

t = seq(-6,6,len = 100)
yt = dt(t,7)

x <- seq(-1.96, -6, len = 100)
y <- dt(x, 7)
x1 <- seq(1.96, 6, len = 100)
y1 <- dt(x1, 7)

polygon(x = c(-6,-6,t,6,6),
        y = c(0.4,0,yt,0,0.4),
        col = "#eae9c8",
        border = "black")


polygon(x = c(x1[1], x1, x1[100]),
        y = c(dt(-6, 7), y1, dt(6, 7)),
        col = "#b14025",
        border = "black")

polygon(x = c(x[1], x, x[100]),
        y = c(dt(-6, 7), y, dt(6, 7)),
        col = "#b14025",
        border = "black")

这是附加的输出 Final Output