Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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_Polygon - Fatal编程技术网

为什么R中的多边形适用于全曲线而不适用于半曲线?

为什么R中的多边形适用于全曲线而不适用于半曲线?,r,plot,polygon,R,Plot,Polygon,我想知道为什么多边形可以很好地处理双面曲线底部图片,但不能正确处理同一曲线顶部图片的一半 请给我一个简短的解释 par(mfrow = c(2, 1)) gg = curve(dnorm(x), -4, 0) # Not working! polygon(gg, col = 2) gg = curve(dnorm(x), -4, 4) # Working! polygon(gg, col = 2) 单曲线 因为多边形连接曲线的起点和终点,所以它会创建一些奇怪的形状。从?我们可以看到 假定多

我想知道为什么多边形可以很好地处理双面曲线底部图片,但不能正确处理同一曲线顶部图片的一半

请给我一个简短的解释

par(mfrow = c(2, 1))

gg = curve(dnorm(x), -4, 0) # Not working!
polygon(gg, col = 2)

gg = curve(dnorm(x), -4, 4) # Working!
polygon(gg, col = 2)
单曲线 因为多边形连接曲线的起点和终点,所以它会创建一些奇怪的形状。从?我们可以看到

假定多边形通过将最后一点连接到第一点来闭合

第一个点和最后一个点由曲线中的from和to值给出。在第一种情况下,它们是-4和0

只需将xlim和xaxs=i添加到曲线

一个绘图中的多条曲线 如果要在一个绘图中放置多条曲线,可能会遇到无法如上所示限制轴的问题。因此,我们必须在这里深入研究曲线对象的结构gg

让我们首先创建两条曲线

gg = curve(dnorm(x), -4, 4) ; 
polygon(gg, col = 2) ; 
gg = curve(dnorm(x), -4, 0, xlim = c(-4,0), xaxs = "i", add = T) ; 
现在我们来看看gg:

我们看到gg只是一个$x和$y坐标的列表。因此,我们可以在第二个gg的0,0处添加一个坐标,以模拟重叠的第二条曲线的末端。之后,两条曲线都正确绘制

gg$x <- c(gg$x, 0)
gg$y <- c(gg$y, 0)
polygon(gg, col = 4)
单曲线 因为多边形连接曲线的起点和终点,所以它会创建一些奇怪的形状。从?我们可以看到

假定多边形通过将最后一点连接到第一点来闭合

第一个点和最后一个点由曲线中的from和to值给出。在第一种情况下,它们是-4和0

只需将xlim和xaxs=i添加到曲线

一个绘图中的多条曲线 如果要在一个绘图中放置多条曲线,可能会遇到无法如上所示限制轴的问题。因此,我们必须在这里深入研究曲线对象的结构gg

让我们首先创建两条曲线

gg = curve(dnorm(x), -4, 4) ; 
polygon(gg, col = 2) ; 
gg = curve(dnorm(x), -4, 0, xlim = c(-4,0), xaxs = "i", add = T) ; 
现在我们来看看gg:

我们看到gg只是一个$x和$y坐标的列表。因此,我们可以在第二个gg的0,0处添加一个坐标,以模拟重叠的第二条曲线的末端。之后,两条曲线都正确绘制

gg$x <- c(gg$x, 0)
gg$y <- c(gg$y, 0)
polygon(gg, col = 4)

Loki向您展示了如何根据需要填充曲线,但没有解释为什么半曲线会如此填充,如果您希望继续使用此函数,这一点很重要

因为给多边形一条单独的曲线,所以它通过绘制一条直线来连接它们来闭合两端。然后填充曲线和新线之间的空间


整个分布上升和下降到y轴上的同一点,形成一条漂亮的填充曲线。通过在曲线顶部停止,直线通过方向的变化绘制,在曲线和两侧的直线之间留下空白,多边形将填充它们。

Loki向您展示了如何根据需要填充曲线,但没有解释为什么半曲线会如此填充,如果您希望继续使用此功能,这一点很重要

因为给多边形一条单独的曲线,所以它通过绘制一条直线来连接它们来闭合两端。然后填充曲线和新线之间的空间

整个分布上升和下降到y轴上的同一点,形成一条漂亮的填充曲线。通过在曲线顶部停止,直线通过方向的变化绘制,在曲线和两侧的直线之间留下空白,哪个多边形填充了它们。

谢谢,没有使用plot的多边形快速修复程序,这样它就不会绘制最后一条直线了吗?我的意思是,假设你有一条完整的双面曲线,然后你决定用半条曲线遮住它的左尾部。谢谢,有没有不使用plot的多边形快速修复方法,这样它就不会画最后一条直线了?我的意思是,假设你有一条完整的双面曲线,然后你决定用半曲线遮住它的左尾部。