如何在 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 '))
方法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 中创建其他常见图形: