在 R 中格式化直方图
Formatting histograms in R
我正在尝试将方差伽玛分布拟合到 1 分钟对数 returns 的经验数据。为了可视化结果,我绘制了 2 个直方图:经验的和理论的。
(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-axis 的范围非常小(大约 10^(-4)),因此 y-values 必须非常大才能达到一个面积(= x 乘以 y)。
设置 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)
我正在尝试将方差伽玛分布拟合到 1 分钟对数 returns 的经验数据。为了可视化结果,我绘制了 2 个直方图:经验的和理论的。
(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-axis 的范围非常小(大约 10^(-4)),因此 y-values 必须非常大才能达到一个面积(= x 乘以 y)。
设置 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)