сюжет уложен бар участок в R - PullRequest
       7

сюжет уложен бар участок в R

6 голосов
/ 28 сентября 2011

Я хотел бы создать гистограмму [гистограмму с накоплением] в R с данными, подобными этим:

Period = c(1,1,2,2,3,3,4,4)                              
Sample = c("A","B","A","B","A","B","A","B")
Value1 = c(3,2,6,7,3,2,1,2)
Value2 = c(1,0,5,2,2,0,2,5)
x <- data.frame(Period,Sample,Value1,Value2)

Возможно ли иметь "Period" и "Sample" на осях X и значения ("Value1" и "Value2") в "Stacked Bar Plot". Таким образом, высота первой гистограммы будет 4 (отдельно для Value1 и Value2) Спасибо за вашу помощь заранее! С наилучшими пожеланиями.

Ответы [ 2 ]

19 голосов
/ 28 сентября 2011

Вы описываете гистограмму с накоплением, а не гистограмму.С ggplot вы можете сделать это следующим образом:

library(ggplot2)
library(reshape2)

x <- data.frame(
  Period = c(1,1,2,2,3,3,4,4),
  Sample = c("A","B","A","B","A","B","A","B"),
  Value1 = c(3,2,6,7,3,2,1,2),
  Value2 = c(1,0,5,2,2,0,2,5)
)

mx <- melt(x, id.vars=1:2)
ggplot(mx, aes(x=Period, y=value, fill=variable)) + 
  geom_bar(stat="identity") + 
  facet_grid(~Sample)

enter image description here

7 голосов
/ 28 сентября 2011

Это не так красиво, как решение ggplot, но

v <- rbind(Value1,Value2)
barplot(v,beside=FALSE,names=levels(interaction(Period,Sample)),legend=TRUE)

, похоже, работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...