在离散尺度上加宽 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】:

只需将xminxmax 分别设置为-InfInf

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,一维散点图)带状图(颜色配置:连续色彩离散色彩色彩梯度)实战

提供给离散比例ggplot2的连续值

ggplot2中的颜色和填充参数有什么区别?

R数据分析-------ggplot2工具箱二