[r] 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 ()에 공급할 주요 격자 선 위치.)

어떤 생각이라도 주시면 감사하겠습니다!



답변

사용해보십시오

scale_x_continuous (중단 = NULL)

이렇게하면 모든 수직 격자 선과 x 축 눈금 표시 레이블이 제거됩니다.


답변

ggplot2 0.9.2부터는 “테마”를 사용하는 것이 훨씬 쉬워졌습니다. 이제 아래에 설명 된대로 panel.grid.major.x 및 panel.grid.major.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 축 눈금을 유지하면서 수직선을 제거하는 방법을 보여줍니다.


답변

이렇게하면 데이터 포인트 만 남게됩니다.

ggplot(out, aes(X1, X2)) +
    geom_point() +
    scale_x_continuous(breaks = NULL) +
    scale_y_continuous(breaks = NULL) +
    opts(panel.background = theme_blank()) +
    opts(axis.title.x = theme_blank(), axis.title.y = theme_blank())


답변

관련 스레드에서 내 대답 복사,

2020 년에 이것을 찾는 사람들을 위해 ggExtra 라이브러리의 removeGrid 함수 형태의 솔루션을 찾았습니다. rdrr.io> removeGrid

ggplot2 버전 3.3.0 및 ggExtra 버전 0.9에서 작동하도록 테스트하여 격자 선없이 축 눈금을 제공했습니다.


답변

옵션 1:

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

ggplot(data_df, aes(x, y)) +
  geom_bar(stat = 'identity') +
  theme(panel.background = element_rect(fill = "white"))

옵션 2 :

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

ggplot(data_df, aes(x, y)) +
      geom_bar(stat = 'identity') +
      theme(
        panel.grid.major.x = element_blank(),
        panel.grid.minor.x = element_blank(),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank()
      )


답변