在 plot() 中设置背景
setting background in plot()
我正在尝试绘制 CDF 以显示与水质标准相关的水质数据。
为了使水质标准一目了然,我使用 rect()
来指示地块的哪些部分不在设定标准内。
我在 rect()
中使用密度来创建散列填充,以便在黑白打印时效果更好(我认为它看起来更好)。
当我只有一个要使用的地块区域时,这很好用 rect()
:
当我在图中有两个单独的 rect()
调用时,第一个 rect()
似乎忽略了密度参数并使用实心填充:
这是我用来执行此操作的代码示例:
pH值数据
data<-rnorm(30, mean = 7, sd = 1)
pH值图
data.ecdf<-ecdf(data)
plot(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10), panel.first = rect(5, -0.02, 6, 1.04, density = 20, border = "258", col = "258"))
plot(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10), panel.first = rect(5, -0.02, 6, 1.04, density = 20, border = "258", col = "258", rect(9,-0.02,10,1.04, density = 20, border = "258", col = "258")))
我也尝试在 ggplot2 中执行此操作,但似乎获得散列填充比在图形中困难得多。
任何关于如何让两个 rect()
在后台显示散列填充 (density = 20
) 的想法或想法将不胜感激。
谢谢!
不确定为什么会这样,但是您可以在 panel.first
参数中同时调用两个矩形:
plot(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10), panel.first = c(
rect(9,-0.02,10,1.04, density = 20, border = "258", col = "258"),
rect(5, -0.02, 6, 1.04, density = 20, border = "258", col = "258")
))
或者,尝试将矩形独立地称为图层:
plot(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10), lty='n')
rect(9,-0.02,10,1.04, density = 20, border = "258", col = "258")
rect(5, -0.02, 6, 1.04, density = 20, border = "258", col = "258")
lines(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10))
我正在尝试绘制 CDF 以显示与水质标准相关的水质数据。
为了使水质标准一目了然,我使用 rect()
来指示地块的哪些部分不在设定标准内。
我在 rect()
中使用密度来创建散列填充,以便在黑白打印时效果更好(我认为它看起来更好)。
当我只有一个要使用的地块区域时,这很好用 rect()
:
当我在图中有两个单独的 rect()
调用时,第一个 rect()
似乎忽略了密度参数并使用实心填充:
这是我用来执行此操作的代码示例:
pH值数据data<-rnorm(30, mean = 7, sd = 1)
pH值图
data.ecdf<-ecdf(data)
plot(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10), panel.first = rect(5, -0.02, 6, 1.04, density = 20, border = "258", col = "258"))
plot(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10), panel.first = rect(5, -0.02, 6, 1.04, density = 20, border = "258", col = "258", rect(9,-0.02,10,1.04, density = 20, border = "258", col = "258")))
我也尝试在 ggplot2 中执行此操作,但似乎获得散列填充比在图形中困难得多。
任何关于如何让两个 rect()
在后台显示散列填充 (density = 20
) 的想法或想法将不胜感激。
谢谢!
不确定为什么会这样,但是您可以在 panel.first
参数中同时调用两个矩形:
plot(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10), panel.first = c(
rect(9,-0.02,10,1.04, density = 20, border = "258", col = "258"),
rect(5, -0.02, 6, 1.04, density = 20, border = "258", col = "258")
))
或者,尝试将矩形独立地称为图层:
plot(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10), lty='n')
rect(9,-0.02,10,1.04, density = 20, border = "258", col = "258")
rect(5, -0.02, 6, 1.04, density = 20, border = "258", col = "258")
lines(data.ecdf, verticals = TRUE, do.points = FALSE, xaxs = "i", yaxs = "i", xlim=c(5,10))