ggplot에서 범례 제목 제거


111

다음에서 범례 제목을 제거하려고합니다 ggplot2.

df <- data.frame(
  g = rep(letters[1:2], 5),
  x = rnorm(10),
  y = rnorm(10)
)

library(ggplot2)
ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom")

여기에 이미지 설명 입력

나는 이 질문을 보았고 거기에 어떤 해결책도 나를 위해 일하지 않는 것 같습니다. 대부분은 어떻게 optsdeprecated되고 theme대신 사용 하는지에 대한 오류를 제공합니다 . 나는 또한 다양한 버전을 시도했습니다 theme(legend.title=NULL), theme(legend.title=""), theme(legend.title=element_blank), 등 일반적인 오류 메시지는 다음과 같습니다

'opts' is deprecated. Use 'theme' instead. (Deprecated; last used in version 0.9.1)
'theme_blank' is deprecated. Use 'element_blank' instead. (Deprecated; last used in version 0.9.1)

ggplot20.9.3 버전이 출시 된 이후 처음으로 사용 하고 있으며 일부 변경 사항을 탐색하기가 어렵습니다.


5
labs()이를 위해 사용할 수 있습니다 labs(colour = ""). 위의 그래프를 생성 한 코드에 선 을 추가합니다 .
Dennis

답변:


191

거의 완료되었습니다. 추가하기 만하면됩니다. theme(legend.title=element_blank())

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  theme(legend.title=element_blank())

R 용 Cookbook의이 페이지에서는 범례를 사용자 지정하는 방법에 대한 자세한 내용을 제공합니다.


2
모든 범례 제목이 제거됩니다. 더 많은 로컬 제어를 위해 guide = guide_legend()명령이 작동합니다. 채우기 범례 제목을 제거하고 색상 범례 제목을 유지하려면, 예scale_fill_brewer(palette = "Dark2", guide = guide_legend(title = NULL)) + scale_color_manual(values = c("blue", "white", "red"))
PatrickT

9

이것도 작동하며 범례 제목을 변경하는 방법도 보여줍니다.

ggplot(df, aes(x, y, colour=g)) +
  geom_line(stat="identity") + 
  theme(legend.position="bottom") +
  scale_color_discrete(name="")

7
이렇게하면 제목이 빈 문자열로 바뀌므로 레이블과 범례 상자 사이에 추가 공간이 생기며, 이는 범례에 위치와 다른 색상의 상자 또는 배경이있는 경우에만 표시됩니다. 따라서 theme_bw()범례 주변에 상자가 있고 플롯 영역의 어딘가에 위치하는 경우와 같은 간단한 경우에는 빠르고 준비된 접근 방식을 사용 하는 것이 좋습니다 (저의 일반적인 접근 방식).
PatrickT 2014

1
관찰에 +1. 위의 솔루션으로 만든 두 개의 다른 범례와 그 사이의 공백을 사용하는 데 문제가 있습니다. 설정 scale_color_manual(name=element_blank())+아래 범례 것은 나를 위해 그것을 해결
joaoal

@joaoal, element_blank()권장되는 접근 방식 인 것 같습니다. 설정 name = NULL 은 또 다른 방법입니다.
PatrickT apr

1

labs색상을 사용 하고 NULL.

ggplot(df, aes(x, y, colour = g)) +
  geom_line(stat = "identity") +
  theme(legend.position = "bottom") +
  labs(colour = NULL)

여기에 이미지 설명 입력


0

들어 Error: 'opts' is deprecated. theme()대신 사용하십시오 . (소멸, 마지막 버전 0.9.1에서 사용) '나 교체 opts(title = "Boxplot - Candidate's Tweet Scores")와 함께 labs(title = "Boxplot - Candidate's Tweet Scores"). 작동했습니다!


0

플롯에 하나 이상의 전설이있을 수 있기 때문에, 선택적으로 할 수있는 방법은 빈 공간을 떠나지 않고 제목의 한을 제거하면 설정하는 것입니다 name의 인수 scale_에 기능 NULL, 즉

scale_fill_discrete(name = NULL)

( 다른 스레드에 대한 의견은 @pascal에 대한 찬사 )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.