直方图通过在x轴上将值域分割为一定数量的数据桶,在y轴上显示相应值的频数,展示了连续型变量的分布。
ggplot(data,aes(x=contvar))+geom_histogram()
#data是一个数据框;contvar是一个连续型变量。
下面我们使用ggplot包中的mpg数据框,分析2008年117个汽车配置的每加仑汽油行驶英里数的分布情况。
1 简单直方图
library(ggplot2)
library(scales)
data(mpg)
cars2008<-mpg[mpg$year == 2008,]
ggplot(cars2008,aes(x=cty))+
geom_histogram()+
labs(title="Default histogram")
2 带有20个数据桶的彩色直方图
ggplot(cars2008,aes(x=hwy))+
geom_histogram(bins=20,color="white",fill="steelblue")+
labs(title="Colored histogram with 20 bins",x="City Miles Per Gallon",y="Frequency")
#创建了20个数据桶(bins=20),指定填充色为钢蓝色,边框为白色,此外还添加了信息量更为丰富的标签
#数据桶的数量在很大程度上影响直方图的外观。
3 带有百分比的直方图
ggplot(cars2008,aes(x=hwy,y=..density..))+
geom_histogram(bins=20,color="white",fill="steelblue")+
scale_y_continuous(labels=scales::percent)+
labs(title="Histogram with percentages",y="Percent",x="City Miles Per Gallon")
#将数据绘制为百分比而不是频数,这可以通过将内置变量..density..指定给y轴来实现
#使用scales包将y轴格式设为百分比
4 带有核密度曲线的直方图
ggplot(cars2008,aes(x=cty,y=..density..))+
geom_histogram(bins=20,color="white",fill="steelblue")+
scale_y_continuous(labels=scales::percent)+
geom_density(color="red",size=1)+
labs(title="Histogram with density curve",y="Percent",x="Highway Miles Per Gallon")
#核密度曲线更平滑地描述了得分的分布,使用geom_density()函数将核密度曲线绘制成红色,并设置曲线宽度
#核密度曲线显示的是双峰分布(两个峰值)
标签:20,..,density,histogram,直方图,ggplot2,geom,绘制 From: https://blog.csdn.net/2302_80828325/article/details/143780452