r - 在 R 中的直方图上绘制累积频率曲线
问题描述
我想在直方图上绘制一条累积频率曲线,虽然我设法正确绘制了这两个图,但我无法使第二个轴以正确的比例(累积频率百分比)工作。这就是我所做的,但我在第二个 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)
解决方案
我不确定我是否理解这个问题,如果它要求一个直方图密度图,或者它是否要求一个具有累积相对频率线的频率直方图。
首先是一些数据,因为问题中没有数据。
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))
)
推荐阅读
- java - 没有选中项时如何完成 ActionMode?
- python - 有没有办法使用 pyplot 和 pandas 绘制在 Python 中只有特定值的所有列?
- sql - 查询列表中的 JSON 对象 (Postgres 11)
- node.js - 为什么 cURL 返回正确的值而不是 node-libcurl?
- r - 在ggplot中为特定颜色着色最大,最小和中值价格路径
- graph - 绘制线性函数的最佳工具是什么?
- javascript - 获取其中包含特定单词的所有链接
- mongodb - 按数组长度排序mongodb
- c# - 是否可以从 gRPC 中的服务器获取客户端延迟?
- latex - 投影仪参考书目中的项目符号与框架主题重叠。如何删除项目符号和/或正确缩进参考书目?