在离散尺度上加宽 ggplot2 中的 geom_rect()-rectangle
Posted
技术标签:
【中文标题】在离散尺度上加宽 ggplot2 中的 geom_rect()-rectangle【英文标题】:Widen geom_rect()-rectangle in ggplot2 on discrete scale 【发布时间】:2022-01-17 17:15:08 【问题描述】:我有以下代码:
library(tidyverse)
exp<-data.frame(a=c(10,30,80,100),b=c("A","B","C","D"))
exp %>%
ggplot(aes(b,a))+
geom_rect(aes(xmin="A",xmax="D",ymin=0,ymax=50,fill="red")) +
geom_point()
如您所见,“A”和“D”的值位于 geom_rect() 提供的矩形的边界上。如何让 geom_rect() 从 x=0 开始并使用绘图的整个宽度?我想在我的数据集中使用误差线,它们在矩形之外的一半。
【问题讨论】:
【参考方案1】:只需将xmin
和xmax
分别设置为-Inf
和Inf
。
exp %>%
ggplot(aes(b,a)) +
geom_rect(aes(xmin=-Inf,xmax=Inf,ymin=0,ymax=50,fill="red"))+
geom_point()
【讨论】:
【参考方案2】:我必须修改您的 exp$a
才能从 0
开始
exp<-data.frame(a=c(0,30,80,100),b=c("A","B","C","D"))
exp %>% ggplot(aes(b,a))+
geom_rect(aes(xmin="A",xmax="D",ymin=0,ymax=100,fill="red"))+
geom_point()+
scale_x_discrete(labels=c("A", "B", "C", "D"), expand=c(0, 0)) +
scale_y_continuous(expand = c(0, 50))
【讨论】:
@Rfantic 感谢您完美的回答。我仍然将第一个答案标记为正确,因为它似乎更容易实现。 @user2386786 很好,但您也可以投票赞成答案。以上是关于在离散尺度上加宽 ggplot2 中的 geom_rect()-rectangle的主要内容,如果未能解决你的问题,请参考以下文章
ggplot2 + geom_point + 与大小成比例的气泡(错误“离散值提供给连续比例”)
R语言使用ggplot2包使用geom_density()函数绘制密度图(连续色彩离散色彩梯度色彩)实战(density plot)
R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(颜色配置:连续色彩离散色彩色彩梯度)实战