2016-01-28 16 views
3

Диаграмма с большим количеством баров выглядит очень сплющенные, например -Цвет только верхняя граница geom_bar

ggplot(data.frame(x = 1:1000, y = (rnorm(1000)), fill = sample(c('a','b','c'), 1000, replace = T)), aes(x, y, fill = fill)) + geom_bar(stat = 'identity') 

У меня есть график для подобного набора данных, который я чувствую, что будет в состоянии сделать больше смысла из-за просто окрашивания верхней границы панели. Я не могу этого добиться. Самое близкое, что я могу сделать, это включить geom_step, но это также добавляет вертикальные линии, где значение y меняется, и это еще больше увеличивает диаграмму. geom_point не обязательно синхронизируются с разделением по оси x, поэтому они разливаются в сторону при малых значениях x. Единственное верное решение для выстрела, о котором я могу думать, - это фактически манипулировать данными, чтобы я мог нарисовать geom_segment, чтобы выполнить свою работу для меня. Есть ли другой способ

PS: Мне нужно придерживаться этого формата по соображениям.

ответ

2

Вы можете использовать geom_errorbar() и установить ymin= и ymax= на свои y значения. Затем вы можете сыграть с width= и size=, чтобы получить нужный вам вид.

ggplot(data.frame(x = 1:1000, y = (rnorm(1000)), fill = sample(c('a','b','c'), 1000, replace = T))) + 
     geom_errorbar(aes(x=x,ymin=y,ymax=y,color=fill),size=0.5,width=3) 

enter image description here

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