【问题标题】:ggplot2 - geom_histogram / scale_fill_manualggplot2 - geom_histogram / scale_fill_manual
【发布时间】:2019-07-01 10:16:24
【问题描述】:

我正在使用以下数据框 (df):

df$GP<-c(0,0,0,1,1,2,3,3,3,3,4,4,9,15,18,18,19,19,20,20,21,22,22,23)

df$colour&lt;-c("g","g","g","g","g","g","g","g","g","g","g","g","t","t","g","g","g","g","g","g","g","g","g","g")

我想要下面的直方图,但为colour=="g"colour=="t" 显示不同的填充。 但是,运行以下代码,标记为colour=="t" 的条形超出比例(最大为 1 - plot2),而应为 0.25(plot1)。

ggplot(data=df,aes(x=GP,y=..ndensity..))+geom_histogram(bins=25,aes(fill=colour))+scale_fill_manual(values=c("black","grey"))

您知道如何实现这一目标吗?

非常感谢您对此的帮助!

【问题讨论】:

  • 请查看here 以了解密度和比例。

标签: r ggplot2


【解决方案1】:

我使用 tibble 作为数据集的数据类型,具有不同的 tibble 变量名称。

结果如你所愿。

  tb <- tibble(
  tbx = c(0, 0, 0, 1, 1, 2, 3, 3, 3, 3, 4, 4, 9, 15, 18, 18, 19, 19, 20, 20, 21, 22, 22, 23),
  tby = c("g","g","g","g","g","g","g","g","g","g","g","g","t","t","g","g","g","g","g","g","g","g","g","g")
)


ggplot(tb, aes(tbx, tby = ..ndensity..)) +
  geom_histogram(bins = 25, aes(fill = tby)) +
  scale_fill_manual(values = c("red", "grey"))

这是输出图:

我希望这能解决你的问题

【讨论】:

  • 亲爱的优素福,感谢您的回答!实际上,我已经设法获得了您的输出,并计算了 y.axis。但是,我希望得到相同的结果,但将密度缩放为 1(如我之前发布的图所示)。我可以想象,当我这样做时,标有“t”的两个值被视为单独的数据集。因此,两个条目的密度都缩放为 1(如在我的帖子中的情节 2 中)。不确定这是否有意义...再次感谢您!
  • 其实我没明白你的话是什么意思:我想要下面的直方图,但为colour=="g" and colour=="t".显示不同的填充
  • 我的意思是:我会和你的完全一样的图表,但在 y.axis 中使用密度(从 0 到 1)而不是“计数”
  • 你可以在这里写下你的完整代码来看看它@matbess
猜你喜欢
  • 2018-06-10
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-03
相关资源
最近更新 更多