2015-06-10 2 views
1

Учитывая data.table:Dodge точек в точке полукокса с ggplot2

df = data.table(type=rep(letters[1:3], each=2), count=c(1, 1, 4, 4, 4, 4), year=rep(c('2013', '2014'), 3)) 

type count year 
a  1  2013 
a  1  2014 
b  4  2013 
b  4  2014 
c  4  2013 
c  4  2014 

Я пытался построить диаграмму точки и линейный график, чтобы показать count против года:

p = ggplot(data=df, aes(x=year, y=count, group=type, color=type)) + geom_line() + geom_point(position=position_dodge(height=1)) 

, который выглядит как :
enter image description here

Похоже, что вертикальная уловка не работает.

Если я произвожу сюжет:

p = ggplot(data=df, aes(x=year, y=count, group=type, color=type)) + geom_line() + geom_point(position=position_dodge(width=1)) 

тогда сюжет выглядит следующим образом:

где работает горизонтальная увернуться.

Как я могу сделать вертикальную уловку (первый сюжет)?

ответ

0

карусели решения: вы можете сделать горизонтальные увернуться и переворачивать оси

p = ggplot(data=df, aes(x=count, y=year, group=type, color=type)) + 
    geom_line(position=position_dodge(width=1)) + 
    geom_point(position=position_dodge(width=1)) + 
    coord_flip() 
p 

enter image description here

+0

Спасибо. Но 'coord_flip' не поддерживается в фасетном графике, поэтому мне все еще интересно, почему' dodge' не работает. – Zelong

0

Я консультировался Хедли о вопросе, и он ответил, что

Dodging определяется только для геометров, которые имеют ymin и ymax

Детали можно найти в Issue 1119.

Смежные вопросы