我正在 R 中绘制直方图,前两个频率被组合到一个我不想要的容器中。数据中有 7 个可能的值,我想要 7 个容器,而不是 6 个。

R绘制的直方图的信息是,
$breaks
[1] 9 10 11 12 13 14 15
$counts
[1] 27 6 5 4 1 11
$density
[1] 0.50000000 0.11111111 0.09259259 0.07407407 0.01851852 0.20370370
$mids
[1] 9.5 10.5 11.5 12.5 13.5 14.5
$xname
[1] "data$hour"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"
Run Code Online (Sandbox Code Playgroud)
问题在于 $counts,它们应该是:
9-20
10-7
11-6
12-5
13-4
14-1
15-11
Run Code Online (Sandbox Code Playgroud)
直方图和信息生成的数据和命令是:
temp <- c(9, 9, 9, 11, 12, 14, 15, 9, 9, 9, 10, 9, 13, 13, 15, 15, 9,
9, 9, 11, 12, 13, 15, 15, 15, 9, 9, 10, 11, 12, 9, 10, 10, 12,
15, 9, 9, 9, 9, 10, 11, 15, 9, 10, 10, 11, 11, 12, 13, 15, 15,
9, 9, 15)
hist(temp)
histinfo = hist(temp)
histinfo
Run Code Online (Sandbox Code Playgroud)
如何纠正这个问题?我的想法是计算出现次数并绘制条形图,但这似乎有点矫枉过正,因为 hist 已经内置了。我尝试更改休息时间但无济于事。
谢谢。
breaks绘制直方图时必须设置。
就我个人而言,我会手动将数据制成表格并绘制条形图。这可能是也可能不是您真正想要的。
library(reshape)
temp.melt <- melt(table(temp))
library(ggplot2)
ggplot(temp.melt, aes(x = temp, y = value)) +
theme_bw() +
geom_bar(stat = "identity")
Run Code Online (Sandbox Code Playgroud)
