【问题标题】:plotting a cumulative frequency curve on a histogram in R在 R 中的直方图上绘制累积频率曲线
【发布时间】:2021-06-02 21:00:20
【问题描述】:

我想在直方图上绘制一条累积频率曲线,虽然我设法正确绘制了这两个图,但我无法使第二个轴以正确的比例(累积频率百分比)工作。这就是我所做的,但我在第二个 y 轴上的范围为 0 到 600。你能帮我解决这个问题吗?我做错了什么?

hist(all_final_braking_events$Mean)->h
plot(h, col="red")
par(new=TRUE)
all_final_braking_events$Mean->y
plot(sort(y), 1:length(y), xaxt="n", yaxt="n", ann=FALSE)
axis(side=4, ylim=c(0,100), las=1)

【问题讨论】:

  • 欢迎来到 SO!如果您提供最小可重复的示例,您将最大限度地获得有用的答案。 This post 可能会有所帮助。

标签: r plot histogram axis curve


【解决方案1】:

我不确定我是否理解这个问题,如果它要求一个直方图密度图,或者它是否要求一个具有累积相对频率线的频率直方图。

首先是一些数据,因为问题中没有。

set.seed(2021)    # Make the results reproducible
n <- 1e4
x <- rgamma(n, shape = 10, scale = 0.5)

1。密度和频率图

接下来的两个图是左侧的密度图和右侧的频率图,分别带有累积密度和频率线。
注意两个图上的图形参数ylim 设置。

old_par <- par(mfrow = c(1, 2))

h <- hist(x, freq = FALSE, col = "red", ylim = c(0, 1))
lines(h$mids, cumsum(h$density))

h <- hist(x, plot = FALSE)
plot(h, col = "red", ylim = c(0, sum(h$counts)))
lines(h$mids, cumsum(h$counts))

par(old_par)

2。频率图与相对频率线。

现在是一个频率图,其中叠加了一条累积的相对频率线,其第二个轴位于图的右侧。

第二个轴位置是累积的频率,但它的标签是累积的相对频率(密度)。

注意ylim 图形参数设置为频率总和。

h <- hist(x, plot = FALSE)
plot(h, col = "red", ylim = c(0, sum(h$counts)))
lines(h$mids, cumsum(h$counts))
axis(
  side = 4,
  at = pretty(cumsum(h$counts)),
  labels = pretty(cumsum(h$density))
)

【讨论】:

  • 非常感谢您的快速回复!这是我要绘制的第二种情况。应用您的代码我收到此错误: 轴错误(side = 4, at = pretty(cumsum(h$counts)), labels = pretty(cumsum(h$density))) :'at' 和 'labels' 长度不同,8 != 6
  • @Evi-Evan 你忘记发布错误了 :)
  • 我也在尝试: hist(all_final_braking_events$Mean)->h plot(h, col="pink") par(new=TRUE) all_final_braking_events$Mean->y plot(sort(y ), 1:length(y), xaxt="n", yaxt="n", ann=FALSE) f=cumsum(h$counts) 轴(side=4, at = pretty(f),labels = pretty( f)) 那行得通,但又给了我不正确的 y 轴比例!我试过乘以 100 并除以样本数(n),但我再次得到第二个 y 轴的计数......
  • 您对我遇到的错误有什么建议吗?我也尝试改变轴上的刻度,但没有运气:( .
猜你喜欢
  • 1970-01-01
  • 2021-05-04
  • 2021-11-23
  • 1970-01-01
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 2020-03-28
相关资源
最近更新 更多