Постройте каждый столбец в кадре данных как гистограмму на одной странице с помощью 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]()
Это отображает все столбцы, но данные выглядят одинаково в каждом из них. Итак, что-то явно не так.
Правильно ли это подходит для этой задачи? Я уверен, что у меня есть какой-то глупый синтаксис где-то, который назначает одинаковые данные столбца для каждого элемента в списке, но я не уверен, что это такое.
Спасибо
Ответы
Ответ 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"
, потому что каждая из переменных имеет заметно различный диапазон и масштаб.