Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中的绘图中填充背景_R_Plot_Ggplot2 - Fatal编程技术网

如何在R中的绘图中填充背景

如何在R中的绘图中填充背景,r,plot,ggplot2,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

所以,我用曲线在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")
曲线(dt(x,df=7),from=-6,to=6)

x既然您希望得到一个
ggplot
答案,只需将
+主题(panel.background=element_rect(fill=“yellow”)
添加到您的绘图或您喜欢的颜色中即可。

我终于成功地仅使用基本绘图功能

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

  • 为了将图形固定为从所需的X和Y开始,我使用了绘图函数xaxs和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")
曲线(dt(x,df=7),from=-6,to=6,xaxs=“i”,yaxs=“i”,ylim=c(0,0.4)) t=序列(-6,6,len=100) yt=dt(t,7)
x以下是使用
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)
库(ggplot2)

par(bg='blue')
你可以改变整个背景。我想对于标准图形没有其他方法。但是有一些方法可以使用例如
ggplot2
package.噢,对不起,我忘了提到。我只想要基于ggplot2的答案,这就是为什么我在tagsOh中添加了它,那么它很容易<代码>主题(panel.background=element_rect(fill=“black”)
您可以编辑以从一开始就包含代码吗?在曲线和曲线图中使用ggplot?我以前从未使用过ggplot2,也许您可以通过在整个绘图区域中使用以下主题填充进行调整。我不想在曲线下填充颜色,除了阴影区域。请看我上面所附的预期输出图片,非常感谢!!ggplot提供美观的绘图,顺便说一句,x轴和y轴没有对齐。我试过使用XAX和YAX,但都不起作用。回答这个问题,我用这个代替我的。你是对的,有一个偏移量,我不知道如何删除它。当然,可以在y=0处放置一条水平线,在x=-6处放置一条垂直线,但看起来不太好。我一直在努力,如果我找到了解决办法,我会让你知道的。