我正在使用R中mlbench软件包中的Soybean数据集。
我想通过为每个变量(全部分类)创建简单的条形图来显示频率分布。 情节应该看起来像这样:
https://www.statmethods.net/graphs/images/barplot1.jpg
非常感谢, M
答案 0 :(得分:2)
或者,您也可以尝试{purrr}
在数据的每一列上应用{ggplot2}
进程。我在这里使用了aes_string()
,因此列名可以作为字符串传递给ggplot
美观。
编辑:使用gridExtra :: marrangeGrob()生成所有图形的6 x 6排列。
library(mlbench)
library(purrr)
library(ggplot2)
library(gridExtra)
data("Soybean")
marrangeGrob(
map(
names(Soybean),
~ ggplot(Soybean, aes_string(.x)) +
geom_bar()
),
ncol = 6,
nrow = 6,
top = "Soybean Distribution"
)
答案 1 :(得分:0)
如果要一张一张地绘制所有变量,则可以在数据集的姓上使用一个循环。使用ggplot()
和函数get()
专注于变量的名称。
library(mlbench)
data(Soybean)
library(ggplot2)
library(dplyr)
for(j in 1:ncol(Soybean)){
var <- colnames(Soybean)[j]
Soybean %>%
ggplot(aes(x = get(var))) +
geom_histogram(stat = 'count') +
labs(x = 'var')
}
答案 2 :(得分:0)