【问题标题】:Cumulative frequency from largest to smallest累积频率从大到小
【发布时间】:2019-07-12 21:06:47
【问题描述】:

我有四个变量(M、N、O、P),我想用 val 来绘制它们 y 轴上的累积频率(从最大到最小)和 Loc(位置)在 x 轴上。你能帮我画出累积的图表吗 使用R从最大值到最小值的频率?

    head(data)
      Loc variable val
    1  1  M      35.5
    2  2  M      10.0
    3  3  M      68.5
    4  4  M      74.0
    5  5  M      7.5
    6  6  M       49.0
........................
........................
      32 P     0.8913642
      33 P     14.7647320
      34 P    92.4376504
      35 P     2.2597151
      36 P    39.3573232
      37 P     32.5501549

我只是想要一个这样的图表,其中颜色图表是四个变量(M、N、O、P)从最大到最小的累积值:

【问题讨论】:

  • @IceCreamToucan,我想从“最大到最小”和 Loc 到 x 轴,随着我们向下移动,位置会增加。
  • 它没有根据我在问题中提到的四个变量正确地给我绘图。
  • 我对这 4 个变量如何适应感到困惑。它们都在同一个图上吗?你能找到一些示例数据来说明吗?也许将其简化为两个变量。每行的 Loc 是否唯一?
  • 谢谢@Elin,我添加了数据的尾部。每个变量在每个位置都可用,大约有 37 个位置。从最大值到最小值绘制累积频率图的关键是什么?
  • 而不是(或除了)发布head(data)tail(data),如果您发布dput(head(data)) 等的结果会有所帮助。此外,不要完全这样做,模拟一个小例子,其中所有 4 个变量都出现了。你写的问题不是很清楚。

标签: r


【解决方案1】:

最好的方法是使用包dplyr 准备数据,使用ggplot 进行绘图。

library(dplyr)
library(ggplot2)

data %>%
  group_by(variable) %>%
  arrange(variable, val) %>%
  mutate(x = row_number()) %>%
  ggplot(aes(x, val, colour = variable)) +
  geom_line()

对于val 的累积图,请包含说明

val = cumsum(val)

mutate 中,紧跟在x = row_number() 之后。

data %>%
  group_by(variable) %>%
  arrange(variable, val) %>%
  mutate(x = row_number(),
         val = cumsum(val)) %>%
  ggplot(aes(x, val, colour = variable)) +
  geom_line()

数据。

data <- read.table(text = "
Loc variable val
1  M      35.5
2  M      10.0
3  M      68.5
4  M      74.0
5  M      7.5
6  M       49.0
32 P     0.8913642
33 P     14.7647320
34 P    92.4376504
35 P     2.2597151
36 P    39.3573232
37 P     32.5501549
", header = TRUE)

【讨论】:

  • 感谢@Rui Barrada,该图正是我想要的累积频率,但该图只是正常的,看来您没有使用从最大值到最小值的累积频率。请以这种方式使用,如 ecdf 或其他函数来获取累积频率。
  • @Stackuser 使用新代码和图表查看编辑完成。
  • 另外,我得到了这个错误: Group_by(., variable) 中的错误:找不到函数“group_by”
  • @Stackuser 在我给library(ggplot2) 的电话中,我有一个错字,写成ggplot 没有2。函数group_by 需要library(dplyr),在脚本一开始就正确调用了。
  • 非常感谢@Rui Barradas 的帮助,但对于大量数据,它没有给我正确的图表。它是否具有此 ggplot 代码的正常绘图版本(绘图)?如果有,我很感激,否则再次感谢您的努力。
猜你喜欢
  • 2012-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多