Создание барплота из data.frame
В R у меня есть data.frame, как тот, который находится в верхней части изображения.
Есть ли возможность создать панель, подобную той, что находится внизу изображения?
![enter image description here]()
Ответы
Ответ 1
Используя базовую графику, вы можете сделать это просто:
mydf <- data.frame( X1=c(A=2, B=4, C=1), X2=c(3,2,NA), X3=c(4,1,NA) )
barplot(t(as.matrix(mydf)), beside=TRUE)
Использование дополнительных вызовов для axis
может привести к тому, что маркировка больше похожа на вопрос.
Ответ 2
Предполагая, что вы не хотите выхода ascii, вот решение, использующее ggplot2
:
# load / generate your data
mydf <- data.frame( X1 = c(2,4,1), X2 = c(3,2,NA), x3 = c(4,1,NA), row.names=c("A","B","C") )
mydf$Category <- row.names(mydf)
# bring your data to long format as needed by ggplot
library(reshape2)
mydf.molten <- melt(mydf, value.name="Count", variable.name="Variable", na.rm=TRUE)
# plot and facet by categories
library(ggplot2)
qplot( data=mydf.molten, x = Variable, y = Count, geom="bar", stat = "identity" ) + facet_wrap( "Category" )
![enter image description here]()
Для получения дополнительной информации я рекомендую проконсультироваться с руководство ggplot2, особенно глава о geom_bar
и facet_wrap
.