Подтвердить что ты не робот

Постройте каждый столбец в кадре данных как гистограмму на одной странице с помощью ggplot

Я хотел бы построить каждый столбец data.frame, используя гистограмму на одной странице. Вот пример использования набора данных "алмазы", ​​который поставляется с R:

p = list()
for (i in 1:ncol(diamonds)) p[[i]] <- qplot(diamonds[,i], xlab=names(diamonds)[[i]])
do.call(grid.arrange, p)

enter image description here

Это отображает все столбцы, но данные выглядят одинаково в каждом из них. Итак, что-то явно не так.

Правильно ли это подходит для этой задачи? Я уверен, что у меня есть какой-то глупый синтаксис где-то, который назначает одинаковые данные столбца для каждого элемента в списке, но я не уверен, что это такое.

Спасибо

4b9b3361

Ответ 1

Здесь вы идете:

library(reshape2)
library(ggplot2)
d <- melt(diamonds[,-c(2:4)])
ggplot(d,aes(x = value)) + 
    facet_wrap(~variable,scales = "free_x") + 
    geom_histogram()

enter image description here

melt ing позволяет использовать результирующие переменные группировки (называемые variable) для разбиения данных на группы и построения гистограммы для каждого из них. Обратите внимание на использование scales = "free_x", потому что каждая из переменных имеет заметно различный диапазон и масштаб.