【问题标题】:Plot zeros in a different color in ggplot geom_bar在 ggplot geom_bar 中以不同颜色绘制零
【发布时间】:2020-07-10 20:11:31
【问题描述】:

在 ggplot (geom_bar) 中,我希望以不同的颜色绘制零值。

条形图本身的代码:

ggplot(Rodeococha, aes(x=Age ,y=Quantity)) + 
geom_bar(color="dark red", stat = "identity")

并使用在不同页面上找到的为特定值着色的说明,我尝试将我的值切割成间隔并构造:

 ggplot(data= Rodeococha, aes(x= Age ,y= Quantity)) + 
 geom_bar(aes(colour = cut(qsec, c(-Inf,0,Inf))), stat = "identity") +
  scale_colour_manual(name = "qsec", values = c("(-Inf,0]" = "black",
                                                 "(0,Inf]" = "red"))

ATM 报错

剪切错误(qsec, c(-Inf, 0, Inf)):找不到对象“qsec”。

在这个错误之前,它还给出了一些其他错误,所以与其花更多时间来解决这个错误,我想为什么不征求意见,也许还有其他人有更好的主意。

编辑:@Tjebo 的回答奏效了。

为了向其他人澄清:该图实际上是一个堆叠图,有 7 个 x 轴,每个轴包含多个条形。这段代码只是第一个 x 轴。用不同的颜色显示零是为了让解释更容易。

【问题讨论】:

    标签: r ggplot2 geom-bar


    【解决方案1】:

    您的代码不可重现,因此我使用了另一个数据集。首先,条形图在这里可能不合适。用条形图很难显示“零”。我正在增加线条大小以显示效果,您会看到这有一个非常不受欢迎的副作用

    对于您的问题,只需使用条件陈述作为审美。见下文

    如果这不是您想要的,请提供更好的样本数据和所需的输出。

    library(ggplot2)
    ggplot(mtcars, aes(x= cyl,y= vs)) + 
      geom_bar(stat = "identity", size = 3, aes(color = vs == 0)) +
      scale_colour_manual(name = "vs", values = c(`TRUE` = 'black',`FALSE` = "red"))
    

    reprex package (v0.3.0) 于 2020 年 3 月 30 日创建

    【讨论】:

    • 谢谢。我觉得这很好!这是工作。因为该图实际上是一个堆叠图,有 7 个 x 轴,每个轴都包含多个条形。而且只有几个零。想法是清楚地区分最小值和这些零
    猜你喜欢
    • 1970-01-01
    • 2021-11-13
    • 2019-08-19
    • 2021-02-08
    • 2016-09-29
    • 2017-01-19
    • 1970-01-01
    • 2018-04-08
    • 2013-08-16
    相关资源
    最近更新 更多