geom_histogram绘制每个x值和更高的计数/累积

时间:2017-12-01 18:31:44

标签: r dataframe ggplot2 histogram geom-bar

我正在尝试在R中创建直方图/条形图,以显示我在数据集和更高中的每个x值的计数。我无法做到这一点,我不知道我是否使用geom_histogram或geom_bar(我想使用ggplot2)。进一步描述我的问题:

在X轴上,我有“Percent_Origins”,这是我数据框中的一列。在我的Y轴上 - 对于我发生的每个Percent_Origin值,我希望条形的高度表示具有该百分比值和更高值的行数。现在,如果我要使用直方图,我有:

   plot <- ggplot(dataframe, aes(x=dataframe$Percent_Origins)) + 
  geom_histogram(aes(fill=Percent_Origins), binwidth= .05, colour="white")

我应该更改填充或一般代码以执行我想要的操作?也就是说,绘制每个值的计数累积和更高?谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您最好的选择是创建累积分发函数首先然后将其传递给ggplot。有几种方法可以做到这一点,但一个简单的方法(使用dplyr)是对数据进行排序(按降序排列),然后只为每个方法分配一个计数。修剪数据,以便仅包含最大计数,然后绘制它。

为了演示,我使用的是内置iris数据。

iris %>%
  arrange(desc(Sepal.Length)) %>%
  mutate(counts = 1:n()) %>%
  group_by(Sepal.Length) %>%
  slice(n()) %>%
  ggplot(aes(x = Sepal.Length, y = counts)) +
  geom_step(direction = "vh")

给出:

enter image description here

如果您真的想要条形而不是线条,请改用geom_col。但是,请注意,您需要填充间隙(以确保条纹在整个范围内均匀分布)或处理图中的断点。