简单总结一下直方图和条形图二者的区别,在统计学中:
1.条形图主要用于展示分类数据,多用来表示不同组别的差异;直方图则主要用于展示数值型数据;
2.条形图中横轴上的数据是孤立的,是具体的数值;直方图横轴上的数据是连续的,是一个范围;
3.条形图中各个数据之间是相互独立的,两两条形之间留有空隙;直方图中长方形之间没有空隙
4.条形图是用条形的高度表示频数大小;在直方图中,各个长方形的面积表示频数大小
下面是绘制显示数据分布和密度的直方图的小例子。
####显示数据分布和密度的直方图
##创建数据集
set.seed(1234)
wdata = data.frame(
sex = factor(rep(c("F", "M"), each=200)),
weight = c(rnorm(200, 55), rnorm(200, 58))
)
head(wdata, 4)
library("dplyr")
mu <- wdata %>%
group_by(sex) %>%
summarise(grp.mean = mean(weight))
mu
##基础图形
library("ggplot2")
a <- ggplot(wdata, aes(x = weight))
#绘制基础直方图,添加一条与权重变量平均值对应的竖线
a + geom_histogram(bins = 30, color = "black", fill = "gray") +
geom_vline(aes(xintercept = mean(weight)),
linetype = "dashed", size = 0.6)
# 改变线条颜色
a + geom_histogram(aes(color = sex), fill = "white",
position = "identity") +
scale_color_manual(values = c("#00AFBB", "#E7B800"))
# 改变密度填充区域和轮廓的颜色
a + geom_histogram(aes(color = sex, fill = sex),
alpha = 0.4, position = "identity") +
scale_fill_manual(values = c("#00AFBB", "#E7B800")) +
scale_color_manual(values = c("darkolivegreen1", "lightskyblue"))
##绘制显示数据分布和密度的直方图
a + geom_histogram(aes(y = ..density..),
colour="white", fill="pink") +
geom_density(alpha = 0.2, fill = "black")
# 按分组设置颜色
a + geom_histogram(aes(y = ..density.., color = sex),
fill = "white",
position = "identity")+
geom_density(aes(color = sex), size = 1) +
scale_color_manual(values = c("#868686FF", "darkseagreen"))
补充:相关的还有边际曲线的绘制
library(ggplot2) library(ggExtra) head(mtcars) # 绘图 p <- ggplot(mtcars, aes(x=wt, y=mpg, color=cyl, size=cyl)) + geom_point() + theme(legend.position="none") p
# 边际直方图 p1 <- ggMarginal(p, type="histogram") p1
# 边际密度图 p2 <- ggMarginal(p, type="density") p2
#边际箱线图 p3 <- ggMarginal(p, type="boxplot") p3
关注“作图帮”公众号,免费分享绘图代码与示例数据~



