r - 在 R 中格式化直方图
问题描述
我正在尝试将方差伽玛分布拟合到 1 分钟对数回报的经验数据。为了可视化结果,我将两个直方图绘制在一起:经验和理论。(a
是经验数据的向量)
SP_hist <- hist(a,
col = "lightblue",
freq = FALSE,
breaks = seq(a, max(a), length.out = 141),
border = "white",
main = "",
xlab = "Value",
xlim = c(-0.001, 0.001))
hist(VG_sim_rescaled,
freq = FALSE,
breaks = seq(min(VG_sim_rescaled), max(VG_sim_rescaled), length.out = 141),
xlab = "Value",
main = "",
col = "orange",
add = TRUE)
(经验直方图-蓝色,理论直方图-橙色)
然而,在将 2 个直方图绘制在一起之后,我开始想知道两件事:
- 在我所说的两个直方图中,
freq = FALSE
. 因此,y 轴应在 (0, 1) 范围内。在 y 轴上的实际图片值超过 3,000。怎么会发生?如何解决? - 我需要更改分桶大小(桶的宽度)和 x 轴单位长度的密度。怎么可能完成这些任务?
谢谢您的帮助。
解决方案
freq=FALSE
表示将整个直方图的面积归一化为 1。由于您的 x 轴范围非常小(大约 10^(-4)),因此 y 值必须非常大才能实现面积(= x 乘以 y)为 1。
设置 bin 数量的唯一方法是向参数breaks提供断点向量。理论上,这个参数也接受一个数字,但是这个数字会被hist忽略。因此尝试以下操作:
bins <- 6 # number of cells
breaks <- seq(min(x),max(x),(max(x)-min(x))/bins)
hist(x, freq=FALSE, breaks=breaks)
推荐阅读
- r - 从给定年份到 R 中的最新可用年份
- eclipse - 是否可以在 Eclipse 下运行(也可能调试)Jupyter 笔记本?
- python - 尝试编写 OpenVINO 推理引擎但将图像 astype 输入到 FP16 得到 ValueError:无法将字符串转换为浮点数
- javascript - 删除目录中以前的文件,创建新文件并使用 Nodejs 下载新创建的文件
- python - 如何在 Flask 目录中返回两件事
- javascript - R 数据表中闪亮的父子行
- xamarin - 如何从 xamarin.android 的清单文件中修复此错误?
- mysql - 将要作为参数插入的值列表传递给存储过程
- xml - 比较两个 XML 文件获取缺失的属性
- windows-installer - 通过 MSI 安装自签名证书(通过 vdproj 构建)