首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >填充绘图中水平线上方和下方的区域

填充绘图中水平线上方和下方的区域
EN

Stack Overflow用户
提问于 2014-05-18 00:11:04
回答 1查看 1.7K关注 0票数 6

我想填充两条水平线上方和下方的区域。

这就是我的想法:

代码语言:javascript
复制
 par(mfrow=c(1,2))
 x<-seq(1,24,1)
 y<-rnorm(24, 10, 2)

 for(i in 1:2) {
 plot(x,y,ylim=c(4,16))
 lines(x,y)
 abline(h=11)
 abline(h=9)}

 hyper<-y
 hyper[hyper<11]<-11
 polygon(x,hyper,col="gray")

我的主要问题是与水平线的相交是不正确的。

EN

回答 1

Stack Overflow用户

发布于 2014-05-18 03:14:22

如果您仍然希望使用老式的graphics工具(plotablinelines等-其他建议涉及grid系统的衍生工具,如ggplot2),您可以尝试使用自定义裁剪区域,请参阅?clip

代码语言:javascript
复制
par(mfrow=c(1, 2))
x <- seq(1, 24, 1)
y <- rnorm(24, 10, 2)

# 1st plot
plot(x, y, ylim=c(4,16), type='o')

# 2nd plot
plot(x, y, type='n', ylim=c(4,16))

clip(x1=min(x),x2=max(x), y1=11, y2=max(y))
polygon(c(min(x), x, max(x)), c(min(y), y, min(y)), col="gray")

clip(x1=min(x),x2=max(x), y1=9, y2=min(y))
polygon(c(min(x), x, max(x)), c(max(y), y, max(y)), col="gray")

clip(par("usr")[1], par("usr")[2], par("usr")[3], par("usr")[4]) # reset clipping region
lines(x,y, type='o')
abline(h=c(9, 11))

首先我们设置不带绘图的绘图区域,然后我们设置两个不同的裁剪区域(我们用灰色填充到其中),然后我们删除裁剪区域并用线和点重新绘图。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23713494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档