沿x方向扩展ggplot`geom_ribbon()` 库(tidyverse) mQ
您可以从沿x方向扩展ggplot`geom_ribbon()` 库(tidyverse) mQ,r,ggplot2,R,Ggplot2,您可以从mtcarsQ$x library(tidyverse) mQ <- quantile(mtcars$wt, c(0.025, 0.975)) mtcarsQ <- data.frame(x = c(min(as.numeric(diamonds$cut)), max(as.numeric(diamonds$cut))), ymin = rep(mQ[1], 2),
mtcarsQ$x
library(tidyverse)
mQ <- quantile(mtcars$wt, c(0.025, 0.975))
mtcarsQ <- data.frame(x = c(min(as.numeric(diamonds$cut)),
max(as.numeric(diamonds$cut))),
ymin = rep(mQ[1], 2),
ymax = rep(mQ[2], 2))
ggplot() +
geom_blank(data = diamonds, aes(x = cut, y = y)) +
geom_ribbon(data = mtcarsQ, aes(x = x, ymin = ymin, ymax = ymax), alpha=0.2) +
geom_boxplot(data = diamonds, aes(x = cut, y = y, fill = cut, group = cut)) +
coord_cartesian(ylim = c(0, 12)) +
theme_bw()
我刚刚想到了这一点,当
x
是一个因素时,你会怎么做?也许我需要提出另一个新问题。谢谢你的回答。将在标准的24小时等待时间后接受答复。@JasonHunter不确定您的意思。同样的原理仍然适用于factor
s。如果我在下面的图上放置geom_ribbon()
,您的扩展技术将不起作用,因为x
是一个因子?我是不是想错了:ggplot(mtcars%>%变异(cyl=因子(cyl)),aes(cyl,mpg))+geom_col()
。我得走了,但我会再仔细考虑一下。感谢您将因子转换为数值as.integer(factor(cyl))
@JasonHunter我已经更新了我的帖子,加入了一个例子来回应你的最后一条评论。
mtcarsQ <- data.frame(x = c(min(as.numeric(diamonds$cut)) - 0.5,
max(as.numeric(diamonds$cut)) + 0.5),
ymin = rep(mQ[1], 2),
ymax = rep(mQ[2], 2))
ggplot() +
geom_blank(data = diamonds, aes(x = cut, y = y)) +
geom_ribbon(data = mtcarsQ, aes(x = x, ymin = ymin, ymax = ymax), alpha=0.2) +
geom_boxplot(data = diamonds, aes(x = cut, y = y, fill = cut, group = cut)) +
coord_cartesian(ylim = c(0, 12)) +
theme_bw()
mtcars %>%
mutate(cyl = factor(cyl)) %>%
ggplot() +
geom_col(aes(cyl, mpg)) +
geom_rect(
data = data.frame(
xmin = min(as.integer(as.factor(mtcars$cyl))) - 0.5,
xmax = max(as.integer(as.factor(mtcars$cyl))) + 0.5,
ymin = 20,
ymax = 120),
aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax),
alpha = 0.2, fill = "green")