我在R中画了一个直方图,前两个频率被合并到一个我不想要的垃圾桶里。数据中有七个可能的值,我想要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"问题在$counts中,它们应该是:
9-20
10-7
11-6
12-5
13-4
14-1
15-11直方图和信息生成的数据和命令是:
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如何才能纠正这种情况?我的想法是数数发生的事件,并画一个条形图,但这似乎是过火,因为赫斯特已经内置了。我试着改变休息时间,但没有结果。
谢谢。
发布于 2014-03-15 20:03:37
绘制直方图时必须设置breaks。
就我个人而言,我会用手把数据列出来,然后画一个圆珠笔。这可能是你真正想要的,也可能不是。
library(reshape)
temp.melt <- melt(table(temp))
library(ggplot2)
ggplot(temp.melt, aes(x = temp, y = value)) +
theme_bw() +
geom_bar(stat = "identity")

发布于 2014-03-15 20:41:39
将table函数与barplot一起使用
> barplot(table(temp))

发布于 2014-03-15 20:07:47
当使用hist时,如果您想要每一项,则需要对两端进行分隔。因此,以下内容将有效。
hist(temp, breaks = 8:15)如果你不喜欢x轴上的8,你必须抑制它,然后画出x轴。
hist(temp, breaks = 8:15, xaxt = 'n')
axis(1, 8:14+0.5, 9:15)不幸的是,内置的hist函数可能应该主要用于探索而不是发布,因此如果您知道使用参数(如right = TRUE )调用该函数,那么您应该清楚第一个图的输出意味着什么,并且很容易解释(很明显,没有低于8的东西)。
https://stackoverflow.com/questions/22428992
复制相似问题