简单总结一下直方图和条形图二者的区别,在统计学中:
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

关注“作图帮”公众号,免费分享绘图代码与示例数据~
本文介绍了直方图与条形图的区别,重点讲解了直方图在展示数值型数据上的应用。直方图的横轴表示连续的数据范围,长方形面积代表频数大小。同时提到了直方图在展示数据分布和密度上的作用,并提供了一个简单的R语言绘制直方图的例子。此外,还提及了边际曲线的绘制作为补充。
4959





