r - 曲线下的阴影面积

标签 r

这个问题在这里已经有了答案:





Shading a kernel density plot between two points.

(5 个回答)


5年前关闭。




我正在尝试为 R 曲线下的一个区域着色。我不太正确,我不知道为什么。曲线定义为

# Define the Mean and Stdev
mean=1152
sd=84

# Create x and y to be plotted
# x is a sequence of numbers shifted to the mean with the width of sd.  
# The sequence x includes enough values to show +/-3.5 standard deviations in the data set.
# y is a normal distribution for x
x <- seq(-3.5,3.5,length=100)*sd + mean
y <- dnorm(x,mean,sd)

情节是
# Plot x vs. y as a line graph
plot(x, y, type="l")

我用来尝试在 x >= 1250 的曲线下着色的代码
polygon(c( x[x>=1250], max(x) ),  c(y[x==max(x)], y[x>=1250] ), col="red")

但这是我得到的结果
enter image description here
如何正确着色曲线下 x >= 1250 的部分

最佳答案

您需要沿着带有多边形的曲线的 x,y 点,然后沿 x 轴返回(从最大 x 值到 x=1250, y=0 处的点)以完成形状。最终的垂直边会自动绘制,因为多边形通过返回其起点来关闭形状。

polygon(c(x[x>=1250], max(x), 1250), c(y[x>=1250], 0, 0), col="red")
enter image description here
如果您不想将阴影一直向下放置到 x 轴,而是希望将其置于曲线的水平,那么您可以使用以下内容。尽管在给出的示例中,曲线几乎下降到 x 轴,因此很难从视觉上看出差异。
polygon(c(x[x>=1250], 1250), c(y[x>=1250], y[x==max(x)]), col="red")

关于r - 曲线下的阴影面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948624/

相关文章:

r - 根据上面满足条件的第一行改变值

r - R 中 nlme 模型起始值的长度——我怎么知道?

r - 如何使用 dplyr 在一次分析中分析分组和未分组的数据集

r - 总结值并将其添加到新列中

r - 在 Linux 上的 Azure 上部署 R (centos 8.2.2004)

r - 在 anaconda 中更新 R

r - 确定形状文件的区域

r - 进行三维函数傅立叶分析的最佳R包

R:将工作表附加到 Excel 工作簿,而不阅读整个工作簿

R:使用 "doparallel"、 "foreach"和 "purrr"库重写循环