【问题标题】:altering the color of one value in a ggplot histogram改变ggplot直方图中一个值的颜色
【发布时间】:2012-11-14 03:21:37
【问题描述】:

我有一个简化的数据框

library(ggplot2)
df <- data.frame(wins=c(1,1,3,1,1,2,1,2,1,1,1,3))
ggplot(df,aes(x=wins))+geom_histogram(binwidth=0.5,fill="red")

我想获得序列中的最终值,3,以不同的填充或 alpha 显示。识别其价值的一种方法是

tail(df,1)$wins

此外,我想让直方图条移动,以便它们以数字为中心。我尝试从获胜值中减去失败

【问题讨论】:

    标签: r ggplot2 histogram


    【解决方案1】:

    您可以通过使用aes(fill = cond) 对单个geom_histogram() 执行此操作。

    要选择不同的颜色,请使用scale_fill_*() 函数之一,例如scale_fill_manual(values = c("red", "blue").

    library(ggplot2)
    df <- data.frame(wins=c(1,1,3,1,1,2,11,2,11,15,1,1,3))
    df$cond <- df$wins == tail(df,1)$wins
    ggplot(df, aes(x=wins, fill = cond)) +
      geom_histogram() +
      scale_x_continuous(breaks=df$wins+0.25, labels=df$wins) +
      scale_fill_manual(values = c("red", "blue"))
    

    【讨论】:

      【解决方案2】:

      1) 要绘制不同颜色的 bin,您可以使用 geom_histogram() 作为子集。

      2) 要在 x 轴上沿数字居中条形,您可以调用 scale_x_continuous(breaks=..., labels=...)

      所以,这段代码

      library(ggplot2)
      df <- data.frame(wins=c(1,1,3,1,1,2,11,2,11,15,1,1,3))
      cond <- df$wins == tail(df,1)$wins
      
      ggplot(df, aes(x=wins)) +
        geom_histogram(data=subset(df,cond==FALSE), binwidth=0.5, fill="red") +
        geom_histogram(data=subset(df,cond==TRUE), binwidth=0.5, fill="blue") +
        scale_x_continuous(breaks=df$wins+0.25, labels=df$wins)
      

      产生情节:

      【讨论】:

      • 谢谢。我将如何满足其中一个值是 15 的情况。我希望它位于图形的最右侧 - 与其他值适当分离,但它实际上会出现在 1 和 2 值之间不再是数字?
      • 你可以删除as.factor()。在这种情况下,bin 不会以 x 轴上的数字为中心。
      • 德克萨斯州。我已接受您的回答,但发布了满足我所有需求的编辑。希望它会被接受观看
      • @pssguy 我认为通常的 SO 做法是在您的问题本身中提供此类更新。我已审核但未批准您的编辑,其他人可能会,但如果我是您,我会将其添加到我的问题中
      • 如果您将cond 设为df$cond &lt;- df$wins == tail(df,1)$wins 列并在aesggplot(df, aes(x=wins, fill = cond)) 中使用它,则可以使用单个geom_histogram 来完成。这是在 ggplot2 中控制颜色的常用方法。
      猜你喜欢
      • 2022-01-17
      • 2019-08-22
      • 2019-06-16
      • 2023-03-27
      • 2014-05-18
      • 2016-03-22
      • 1970-01-01
      • 2013-11-24
      • 2021-08-28
      相关资源
      最近更新 更多