gpt4 book ai didi

r - 使用 facet_grid 有条件地更改面板背景?

转载 作者:行者123 更新时间:2023-12-03 08:53:36 24 4
gpt4 key购买 nike

我正在使用 中的“提示”数据集ggplot2 .如果我做

sp = ggplot(tips,aes(x=total_bill, y = tip/total_bill)) + 
geom_point(shape=1) +
facet_grid(sex ~ day)

情节出来的很好。但我现在只想更改“周五”下的图的面板背景。有没有办法做到这一点?

更好的是,我可以通过传递参数有条件地改变颜色吗?例如,如果超过 3 个点低于 0.1,那么将面板背景(仅针对该面板)更改为某种颜色,而所有其他点都保持默认的浅灰色?

最佳答案

中做任何事情的一般规则ggplot2 是,

  • 创建一个数据框,对要绘制的信息进行编码
  • 将该数据框传递给 geom

  • 在这种情况下,由于您要更改的情节的特定方面,这会变得更加复杂。设计的权力 ggplot2 以一种将绘图的数据元素(即 geom 的)与非数据元素(即主题的)分开的方式,并且恰好绘图背景属于“非数据”类别。

    始终可以选择修改底层网格对象 manually但这很乏味,而且细节可能会随着 的不同版本而改变。 ggplot2 .相反,我们将使用 Hadley 在 this 中提到的“hack”。题。
    #Create a data frame with the faceting variables
    # and some dummy data (that will be overwritten)
    tp <- unique(tips[,c('sex','day')])
    tp$total_bill <- tp$tip <- 1

    #Just Fri
    ggplot(tips,aes(x=total_bill, y = tip/total_bill)) +
    geom_rect(data = subset(tp,day == 'Fri'),aes(fill = day),xmin = -Inf,xmax = Inf,
    ymin = -Inf,ymax = Inf,alpha = 0.3) +
    geom_point(shape=1) +
    facet_grid(sex ~ day)

    enter image description here
    #Each panel
    ggplot(tips,aes(x=total_bill, y = tip/total_bill)) +
    geom_rect(data = tp,aes(fill = day),xmin = -Inf,xmax = Inf,
    ymin = -Inf,ymax = Inf,alpha = 0.3) +
    geom_point(shape=1) +
    facet_grid(sex ~ day)

    enter image description here

    关于r - 使用 facet_grid 有条件地更改面板背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9847559/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com