R ggplot:带有facet_wrap的百分比直方图

时间:2020-10-22 11:38:07

标签: r ggplot2

我有这个df:

     ID values Pop1
1 PDAC1 611648 Nafr
2 PDAC1 322513 Nafr
3 PDAC2 381089 Nafr
4 PDAC2  16941 Nafr
5 PDAC3  21454 Jud
6 PDAC3 658802 Jud

我想在“ Pop1”列上使用facet_wrap制作两个直方图:

ggplot(all.samples2) +
  aes(x = values, fill = Pop1, colour = Pop1, after_stat(density)) +
  geom_histogram(bins = 30L) +
  theme_minimal() +
  facet_wrap(vars(Pop1)) +
  theme_bw() +
  theme(aspect.ratio=1)

但是我不想使用这些值,而是要使用每个人口中的百分比。 所以对于Pop1 = Nafr,我的直方图将显示bin 0到300000中25%的数据,300000到600000中50%的数据以及600001到900000中25%的数据。

我该怎么做?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用geom_bar代替geom_histogram并提供y = ..prop..

  [![ggplot(df) +
  aes(x = values, fill = Pop1, colour = Pop1) +
  theme_minimal() +
  facet_wrap(vars(Pop1)) +
  geom_bar(aes(y = ..prop..)) + 
  theme_bw() +
  theme(aspect.ratio = 1) + 
  labs(y = "") + 
  scale_y_continuous(labels = scales::percent)][1]][1]

enter image description here