我正在使用我发现的程序,在附图中显示了直方图。我试图制作一个相同的但具有不同的数据集。但是,我一直得到非常奇怪的结果。数据表示每个年龄组的MVP获胜者数量。请注意,您必须滚动才能查看更多代码。
任何有助于弄清问题的人都会非常感激。
df <- read.table(textConnection(
'Age Count
20 2
21 0
22 2
23 3
24 6
25 6
26 9
27 11
28 7
29 8
30 6
31 3
32 2
33 2
34 1
35 0
36 2
37 2
38 1
39 1'), header = TRUE)
library(ggplot2)
ggplot(df,aes(x=Age)) +
geom_histogram()+
labs(x="Age",
y="Count",
title="Age vs MLB MVP Count")
ggplot(df,aes(x=Age)) +
geom_histogram(binwidth=2,
fill="cornsilk",color="black")+
labs(x="Age",
y="Count",
title="Age vs MLB MVP Count")
ggplot(df,aes(x=Age,..density..)) +
geom_histogram(binwidth=2,
fill="cornsilk",color="black")+
labs(x="Age",
y="Count",
title="Age vs MLB MVP Count")
histPlot <- ggplot(df,aes(x=Age,..density..))+
geom_histogram(binwidth=2, fill="cornsilk",color="black")+
labs(x="Age",
y="Count",
title="Age vs MLB MVP Count")
histPlot
histPlot + geom_freqpoly(binwidth=2,color="red",size=1.2)
histPlot + geom_line(stat="density",color="blue",size=1.2)+
xlim(20,39)
histPlot +
geom_density(adjust=.4,fill="cyan",color="black",alpha=.40)+
xlim(20,39)
答案 0 :(得分:2)
ggplot的直方图功能通常不适用于汇总数据。让你的例子很好地工作的一种粗略的方法就是重新创建非汇总数据:
df = data.frame(Age=rep(df$Age, df$Count))
然后你的图表就会通过。在实践中,您可能会以某种方式自己创建摘要,因此只需跳过汇总并将原始数据提供给ggplot。