programing

ggplot에서 범례 제목을 변경하는 방법

telebox 2023. 7. 16. 13:15
반응형

ggplot에서 범례 제목을 변경하는 방법

저는 아래와 같은 플롯을 가지고 있습니다.다음 명령을 사용하여 작성되었습니다.

library(ggplot2)

df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)), 
                 rating = c(rnorm(200), rnorm(200, mean=.8)))

ggplot(df, aes(x=rating, fill=cond)) + 
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")

이제 범례 제목을 에서 NEW LEGEND TITLEGEND TITLE.

그래서 저는 위 코드의 끝에 다음 행을 추가했습니다.

+labs(colour="NEW LEGEND TITLE")

하지만 효과가 없습니다.그것을 하는 올바른 방법은 무엇입니까?

enter image description here

이렇게 하면 됩니다.

p <- ggplot(df, aes(x=rating, fill=cond)) + 
           geom_density(alpha=.3) + 
           xlab("NEW RATING TITLE") + 
           ylab("NEW DENSITY TITLE")
p <- p + guides(fill=guide_legend(title="New Legend Title"))

(또는 다른 방법으로)

p + scale_fill_discrete(name = "New Legend Title")

저는 이것을 많이 파고들지 않았지만 당신이 fill=conding ggplot을 사용했기 때문입니다.

 + labs(color='NEW LEGEND TITLE') 

효과가 없었을 수도 있습니다.색을 채우기대체하면 효과가 있습니다!

+ labs(fill='NEW LEGEND TITLE') 

이것은 나에게 megplot2_2.1.0에 효과가 있었습니다.

당신은 두 가지 밀도를 가지고 있기 때문에 당신은 당신만의 색깔을 설정하고 싶을 것입니다.scale_fill_manual.

그렇다면 다음을 수행할 수 있습니다.

df <- data.frame(x=1:10,group=c(rep("a",5),rep("b",5)))

legend_title <- "OMG My Title"

ggplot(df, aes(x=x, fill=group)) + geom_density(alpha=.3) +   
    scale_fill_manual(legend_title,values=c("orange","red"))

enter image description here

위의 코드 중 어떤 것도 나에게 효과가 없었습니다.

이게 제가 찾은 것이고 효과가 있었습니다.

labs(color = "sale year")

.\n마지막에

labs(color = 'sale year\n")

당신 코드에서 당신이 사용한 이후로ggplot(data, fill= cond)히스토그램을 만들려면 레이블 섹션의 "채우기"를 사용하여 범례 제목을 추가해야 합니다. +labs(fill="Title name") color=했다면, "ggplot(데이터, 색상=콘도)"을 할 수 .+labs(colour= "Title Name")요약하면 lab 인수는 aes 인수와 일치해야 합니다.

사용한 적이 있습니다.+ guides(fill=guide_legend("my awesome title"))gem_bar에 작동하지 것 .

간단한 그래프에 적용할 수 있는 또 다른 아주 간단한 답이 있습니다.

guide_legend() 호출을 그래프에 추가하기만 하면 됩니다.

ggplot(...) + ... + guide_legend(title="my awesome title")

아주 좋은 ggplot 문서에 나와 있는 것처럼.

이 방법이 효과가 없으면 가이드에게 전화를 걸어 가이드 매개 변수를 보다 정확하게 설정할 수 있습니다.

ggplot(...) + ... + guides(fill=guide_legend("my awesome title"))

또한 통화에 대한 매개 변수를 지정하여 모양/색상/크기를 변경할 수 있습니다.guides뿐만 아니라.

ggplot에서 facet_wrap을 사용하고 있는데 ArnaudA의 솔루션을 제외하고는 제안된 솔루션 중 어떤 것도 작동하지 않았습니다.

qplot(…) + guides(color=guide_legend(title="sale year")) 

목록에 추가하기 위해 ggplot에 update_labels 함수를 사용할 수도 있습니다.

p <- ggplot(df, aes(x=rating, fill=cond)) + 
           geom_density(alpha=.3) + 
           xlab("NEW RATING TITLE") + 
           ylab("NEW DENSITY TITLE")
update_labels(p, list(colour="MY NEW LEGEND TITLE")

이렇게 하면 별도의 선으로 x축 및 y축 레이블을 변경할 수도 있습니다.

update_labels(p, list(x="NEW X LABEL",y="NEW Y LABEL")

아아, 이 해결책들 중 어떤 것도 저에게 효과가 없었습니다.brms::conditional_effects()의 출력으로 작업하고 있습니다.

필요한 솔루션:

+ labs( fill = "New Title", colour = "New Title", labels = "New Title" )

ggboxplot()에 대한 legend.title을 변경/지정하는 두 가지 방법이 있습니다.

library(ggpubr)

bxp.defaultLegend <- ggboxplot(ToothGrowth, x = "dose", y = "len",
                               color = "dose", palette = "jco")

# Solution 1, setup legend.title directly in ggboxplot()
bxp.legend <- ggboxplot(ToothGrowth, x = "dose", y = "len",
                 color = "dose", palette = "jco", legend.title="Dose (mg)")

# Solution 2: Change legend title and appearnace in ggboxplot() using labs() and theme() option:
plot1 <-  bxp.defaultLegend + labs(color = "Dose (mg)") +
  theme(legend.title = element_text(color = "blue", size = 10), legend.text = element_text(color = "red"))

ggarrange(list(bxp.legend, bxp.defaultLegend, plot1), nrow = 1, ncol = 3,  common.legend = TRUE)

코드는 GitHub의 예제를 기반으로 수정됩니다.

색상을 변경했을 때 사용할 수 있도록 혼합물에 이것을 추가합니다.이것은 또한 두 개의 이산형 변수가 있는 qplot에서도 효과가 있었습니다.

p+ scale_fill_manual(values = Main_parties_color, name = "Main Parties")

제가 말씀드릴 방법은 하나의 공식으로 범례, 축, 제목 등의 레이블을 변경할 수 있으며 여러 공식을 암기할 필요가 없습니다.글꼴 스타일이나 제목 및 축의 레이블/텍스트 설계에는 영향을 주지 않습니다.

아래 질문에 대한 완전한 답변을 드립니다.

 library(ggplot2)
 rating <- c(rnorm(200), rnorm(200, mean=.8))
 cond <-factor(rep(c("A", "B"), each = 200))
 df <- data.frame(cond,rating 
             )

 k<- ggplot(data=df, aes(x=rating, fill=cond))+ 
 geom_density(alpha = .3) +
 xlab("NEW RATING TITLE") +
 ylab("NEW DENSITY TITLE")

 # to change the cond to a different label
 k$labels$fill="New Legend Title"

 # to change the axis titles
 k$labels$y="Y Axis"
 k$labels$x="X Axis"
 k

ggplot 출력을 변수 "k"에 저장했습니다.당신이 원하는 이름을 대셔도 됩니다.나중에 사용했습니다.

k$labels$fill ="New Legend Title"

범례를 바꾸기 위해."채움"은 다른 색상을 나타내는 라벨에 사용됩니다.만약 당신이 1점이 100을 나타내고, 다른 점이 200을 나타내는 것과 같은 크기를 나타내는 라벨이 있다면, 당신은 이 코드를 다음과 같이 사용할 수 있습니다.

k$labels$size ="Size of points"

그러면 레이블 제목이 변경됩니다.

저와 함께 작동하는 유일한 해결책은: p + guides(fill=guide_legend("New title")

공백이 포함된 R에서 테이블을 로드할 수 있는지 모르기 때문에 많은 사람들이 레이블, 범례 레이블, 제목 및 축 이름을 변경하는 데 많은 시간을 소비합니다." "그러나 탭으로 구분된 테이블(또는 기본 또는 단일 공백이 아닌 다른 구분 기호)을 로드할 때 구분 기호를 지정하여 시간을 절약하거나 코드 크기를 줄일 수 있습니다.

read.table(sep = '\t')

또는 csv 형식의 기본 로드 매개 변수를 사용합니다.

read.csv()

즉, 이름을 직접 유지할 수 있습니다."NEW LEGEND TITLE"모든 그림에서 새 범례 제목을 지정하지 않도록 원래 데이터 파일에 열 이름(키워드)으로 표시합니다.

언급URL : https://stackoverflow.com/questions/14622421/how-to-change-legend-title-in-ggplot

반응형