如何在 r 中绘制多个直方图(附示例)


您可以使用以下语法在基本 R的同一图表上绘制多个直方图:

 hist(data1, col=' red ')
hist(data2, col=' blue ', add= TRUE )

您可以使用以下语法在ggplot2中绘制多个直方图:

 ggplot(df, aes(x = x_var, fill = grouping_var)) +
  geom_histogram(position = ' identity ', alpha = 0.4 )

以下示例展示了如何在实践中使用每种方法。

方法一:在R基中画几个直方图

以下代码显示了如何在基本 R 的单个图中绘制多个直方图:

 #make this example reproducible
set. seeds (1)

#define data
x1 = rnorm(1000, mean=0.8, sd=0.2)
x2 = rnorm(1000, mean=0.4, sd=0.1)

#plot two histograms in same graph
hist(x1, col=' red ', xlim=c(0, 1.5), main=' Multiple Histograms ', xlab=' x ')
hist(x2, col=' green ', add= TRUE )

#add legend
legend(' topright ', c(' x1 variable ', ' x2 variable '), fill=c(' red ', ' green ')) 

R 中单个图中的多个直方图

方法2:在ggplot2中绘制多个直方图

以下代码演示了如何使用ggplot2在 R 中的单个图中绘制多个直方图:

 library (ggplot2)

#make this example reproducible
set. seeds (1)

#create data frame
df <- data. frame (var = c(rep(' x1 ', 1000), rep(' x2 ', 1000) ),
                   value = c(rnorm(1000, mean=0.8, sd=0.1),
                             rnorm(1000, mean=0.4, sd=0.1)))

#view first six rows of data frame
head(df)

  var value
1 x1 0.7373546
2 x1 0.8183643
3 x1 0.7164371
4x1 0.9595281
5 x1 0.8329508
6 x1 0.7179532

#plot multiple histograms
ggplot(df, aes(x=value, fill=var)) +
  geom_histogram(color=' #e9ecef ', alpha=0.6, position=' identity ')

您可以使用scale_fill_manual()函数快速更改直方图的颜色:

其他资源

以下教程解释了如何在 R 中创建其他常见图形:

如何在 R 中创建相对频率直方图
如何在 R 中的单个图中绘制多个箱线图
如何在R中绘制多条线

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注