gpt4 book ai didi

r - 填充线下曲线

转载 作者:行者123 更新时间:2023-12-04 17:08:59 25 4
gpt4 key购买 nike

对于下面的示例数据集,我只想将 y 绘制为一条平滑的线,并使用 R 填充线下。

我能够获得平滑的线条,但无法获得颜色填充曲线。有人可以在这里帮助我吗?

date, y
2015-03-11, 71.12
2015-03-10, 34.0
2015-03-09, 11.1
2015-03-08, 9.62
2015-03-07, 25.97
2015-03-06, 49.7
2015-03-05, 38.05
2015-03-04, 38.05
2015-03-03, 29.75
2015-03-02, 35.85
2015-03-01, 30.65

我用来绘制平滑线的代码如下。我无法用颜色填充线条下方的部分
y <- df$y
x <- 1:length(y)

plot(x, y, type='n')
smooth = smooth.spline(x, y, spar=0.5)
lines(smooth)

enter image description here

编辑
使用多边形函数不会给出预期的结果。阴影区域应低于线而不高于
with(smooth, polygon(x, y, col="gray"))

enter image description here

最佳答案

当你绕着它前进时,通过按顺序列出它的边界顶点来描述一个多边形。

该多边形的边界由曲线加上右下角和左下角的两个顶点组成。为了帮助您查看它们,我对顶点进行了过度绘制,根据序列中的位置改变了它们的颜色。

Figure

这是R这样做的代码。它使用了 predictspline 获取曲线的坐标对象,然后使用连接运算符 c 邻接两个额外点的 x 和 y 坐标.为了使填充进入轴,手动设置绘图范围。

y <- c(71, 34, 11, 9.6, 26, 50, 38, 38, 30, 36, 31)
n <- length(y)
x <- 1:n
s = smooth.spline(x, y, spar=0.5)
xy <- predict(s, seq(min(x), max(x), by=1)) # Some vertices on the curve
m <- length(xy$x)
x.poly <- c(xy$x, xy$x[m], xy$x[1]) # Adjoin two x-coordinates
y.poly <- c(xy$y, 0, 0) # .. and the corresponding y-coordinates
plot(range(x), c(0, max(y)), type='n', xlab="X", ylab="Y")
polygon(x.poly, y.poly, col=gray(0.95), border=NA) # Show the polygon fill only
lines(s)
points(x.poly, y.poly, pch=16, col=rainbow(length(x.poly))) # (Optional)

关于r - 填充线下曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29016673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com