Как я могу подавить вертикальные линии сетки в графике ggplot2 при сохранении маркировок оси X?

Это - последующее от этого вопроса, в котором я пытался подавить вертикальные линии сетки.

Решение, в соответствии с learnr, состояло в том, чтобы добавить scale_x_continuous (повреждения = NA), но это имело побочный эффект также подавления маркировок оси X, также. Я полностью рад записать маркировки обратно во вручную, но мне не ясно, как выяснить, куда маркировки должны пойти.

Другая опция состоит в том, чтобы подавить все линии сетки (использование выбирает (panel.grid.major = theme_blank ()) или некоторые такой), и затем отступающий в просто главных горизонтальных линиях сетки. Снова, проблема здесь состоит в том, как выяснить то, что повреждения находятся в графике предоставить к geom_hline ().

Так, по существу мои опции:

  1. Подавите вертикальные линии сетки и маркировки оси X (использующий scale_x_continuous (повреждения = NA)) и включите маркировки оси X назад.
  2. Подавите все линии сетки (использование выбирает (panel.grid.major = theme_blank ())), и добавьте главные горизонтальные линии сетки назад в использовании geom_hline ().

Вот эти две опции:

library(ggplot2)

data <- data.frame(x = 1:10, y = c(3,5,2,5,6,2,7,6,5,4))

# suppressing vertical gridlines and x-axis labels
# need to re-draw x-axis labels
ggplot(data, aes(x, y)) +
  geom_bar(stat = 'identity') +
  scale_x_continuous(breaks = NA) +
  opts(
    panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
    panel.grid.minor = theme_blank(),
    panel.background = theme_blank(),
    axis.ticks = theme_blank()
  )

# suppressing all gridlines
# need to re-draw horizontal gridlines, probably with geom_hbar() 
ggplot(data, aes(x, y)) +
  geom_bar(stat = 'identity') +
  scale_x_continuous(breaks = NA) +
  opts(
    panel.grid.major = theme_blank(),
    panel.grid.minor = theme_blank(),
    panel.background = theme_blank(),
    axis.ticks = theme_blank()
  )

11
задан Community 23 May 2017 в 11:47
поделиться

1 ответ

Поскольку код в комментариях отображается некрасиво, я отправляю это как ответ. Вы можете сделать что-то подобное и добавить метки вручную с помощью geom_text () :

ggplot(data, aes(x, y)) +
        geom_bar(stat = 'identity') +
        scale_x_continuous(breaks = NA) +
        opts(
                panel.grid.major = theme_line(size = 0.5, colour = '#1391FF'),
                panel.grid.minor = theme_blank(),
                panel.background = theme_blank(),
                axis.ticks = theme_blank()
        )+
        geom_text(aes(label = x, y = -.3))
6
ответ дан 3 December 2019 в 10:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: