year <- c(2000:2014)
group <- c("A","A","A","A","A","A","A","A","A","A","A","A","A","A","A",
"B","B","B","B","B","B","B","B","B","B","B","B","B","B","B",
"C","C","C","C","C","C","C","C","C","C","C","C","C","C","C")
value <- sample(1:5, 45, replace=TRUE)
df <- data.frame(year,group,value)
df$value[df$value==1] <- NA
year group value
1 2000 A NA
2 2001 A 2
3 2002 A 2
...
11 2010 A 2
12 2011 A 3
13 2012 A 5
14 2013 A NA
15 2014 A 3
16 2000 B 2
17 2001 B 3
...
26 2010 B NA
27 2011 B 5
28 2012 B 4
29 2013 B 3
30 2014 B 5
31 2000 C 5
32 2001 C 4
33 2002 C 3
34 2003 C 4
...
44 2013 C 5
45 2014 C 3
Выше приведен образец данных для моего вопроса. Каждая группа (A, B или C) имеет значение с 2000 по 2014 год, но в некоторые годы значение может отсутствовать для некоторых групп.
График, который я хотел бы построить, выглядит следующим образом:
ось абсцисс - год
ось y — это группа (т. е. A, B и C должны отображаться в y-lab)
полоса или линия представляют доступность значения каждой группы
Если значение равно NA, то полоса не будет отображаться в этот момент времени. ggplot2 предпочтительнее, если это возможно.
Кто-нибудь может помочь? Спасибо.
Я думаю, что мое описание сбивает с толку. Я ожидаю график, как показано ниже, НО по оси x будет год. А полоса или линия представляют доступность значения для данной группы в течение года.
В образце данных группы A мы имеем
2012 A 5
2013 A NA
2014 A 3
Тогда в точке группы А в 2013 году ничего не должно быть, и тогда в точке группы А в 2014 году будет стоять точка.
df <- as.data.frame(cbind(year,group,value))
. Все принуждается кcharacter
из-заcbind
. Пожалуйста, используйтеdf <- data.frame(year, group, value)
. - person   schedule 16.10.2015ggplot(df)+ geom_bar(aes(x=year, y=value, fill=group), position='dodge', stat='identity')
- person akrun   schedule 16.10.2015