Создайте второстепенные линии сетки в ggplot2 для категориальных данных
Я хотел бы добавить незначительные линии сетки к категориальным данным на графике, созданном с помощью ggplot2. Например,
library("ggplot2")
data<-data.frame(xcategory=rep(c("a","b","c"),each=30), yvalue=c(1,3,6))
ggplot(data,aes(x=xcategory,y=yvalue,alpha=1.0,size=5))+
geom_point(position=position_jitter(width=0.1,height=0.0))+
theme_bw()+
scale_x_discrete(name="Categorical Data") +
scale_y_continuous(name="Continuous Response",limits=c(0,7)) +
theme(axis.text.x=element_text(angle = 90),legend.position="none")
Создает следующий график:
Но я хотел бы, чтобы категориальные линии сетки связывали имя категории, чтобы я мог дрожать все данные в пределах сетки. Вот пример из краски, где я сделал правки красным цветом:
Красные линии, ограничивающие букву "b" - это, наверное, все, что мне нужно, я просто пытался проиллюстрировать три столбца одинаковой ширины.
Помощь или направление к подобному вопросу, который я пропустил, очень ценится. Я попытался добавить информацию сетки через "тему", но безуспешно.
1 ответ
Ты можешь использовать geom_vline()
добавить линии на график и использовать цифры, такие как 0,5, 1,5, чтобы установить позиции. Числа - это векторы, которые начинаются с 0,5 и идут от 1 до "числа категорий" +0,5. Эти строки будут между именами категорий.
ggplot(data,aes(x=xcategory,y=yvalue,alpha=1.0,size=5))+
geom_vline(xintercept=c(0.5,1.5,2.5,3.5),color="red")+
geom_point(position=position_jitter(width=0.1,height=0.0))+
theme_bw()+
scale_x_discrete(name="Categorical Data") +
scale_y_continuous(name="Continuous Response",limits=c(0,7)) +
theme(axis.text.x=element_text(angle = 90),legend.position="none")