Как я могу подавить вертикальные линии сетки на графике ggplot2?
Я строю гистограмму, для которой достаточно баров в качестве признаков горизонтального (x) размещения, поэтому я хотел бы избежать рисования лишних вертикальных линий сетки.
Я понимаю, как стилизовать второстепенные и главные линии сетки в opts (), но я не могу за всю свою жизнь понять, как подавить только вертикальные линии сетки.
library(ggplot2)
data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4))
ggplot(data, aes(x, y)) +
geom_bar(stat = 'identity') +
opts(
panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
panel.grid.minor = theme_line(colour = NA),
panel.background = theme_rect(colour = NA),
axis.ticks = theme_segment(colour = NA)
)
на данный момент, похоже, мне придется подавить все линии сетки, а затем вернуть их обратно с помощью geom_hline(), что кажется своего рода болью (кроме того, не совсем ясно, как я могу найти ТИК/основные позиции сетки для подачи в geom_hline().)
любые мысли будут оценены!
4 ответа:
попробуйте использовать
scale_x_continuous (breaks = NULL)
это удалит все вертикальные линии сетки, а также метки галочек по оси X.
начиная с ggplot2 0.9.2, это стало много проще сделать с помощью " темы."Теперь вы можете назначить темы отдельно для панели.сетка.основной.x и панель.сетка.основной.Y, как показано ниже.
# simulate data for the bar graph data <- data.frame( X = c("A","B","C"), Y = c(1:3) ) # make the bar graph ggplot( data ) + geom_bar( aes( X, Y ) ) + theme( # remove the vertical grid lines panel.grid.major.x = element_blank() , # explicitly set the horizontal lines (or they will disappear too) panel.grid.major.y = element_line( size=.1, color="black" ) )
результат этого примера выглядит довольно уродливо, но он демонстрирует, как удалить вертикальные линии при сохранении горизонтальных линий и отметок оси X.
см. редактирование уровня сетки для другого варианта:
https://github.com/hadley/ggplot2/wiki/Editing-raw-grid-objects-from-a-ggplot