为什么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的多边形快速修复方法,这样它就不会画最后一条直线了?我的意思是,假设你有一条完整的双面曲线,然后你决定用半曲线遮住它的左尾部。