[r] ggplot2로 만든 플롯의 배경색을 어떻게 변경합니까?
기본적으로 ggplot2는 회색 배경의 플롯을 생성합니다. 플롯의 배경색을 어떻게 변경합니까?
예를 들어, 다음 코드로 생성 된 플롯 :
library(ggplot2)
myplot<-ggplot(data=data.frame(a=c(1,2,3), b=c(2,3,4)), aes(x=a, y=b)) + geom_line()
myplot
답변
패널의 배경색을 변경하려면 다음 코드를 사용하십시오.
myplot + theme(panel.background = element_rect(fill = 'green', colour = 'red'))
플롯의 색상을 변경하려면 (패널의 색상은 아님) 다음을 수행 할 수 있습니다.
myplot + theme(plot.background = element_rect(fill = 'green', colour = 'red'))
자세한 테마 세부 정보는 여기를 참조하십시오 . 범례, 축 및 테마에 대한 빠른 참조 시트 .
답변
더 이상 사용되지 opts
않고 theme_rect
사용하려면 다음을 수행하십시오.
myplot + theme(panel.background = element_rect(fill='green', colour='red'))
theme_gray를 기반으로하지만 일부 변경 사항과 격자 선 색상 / 크기 제어를 포함한 몇 가지 추가 사항을 기반으로 사용자 정의 테마를 정의하려면 (ggplot2.org에서 더 많은 옵션을 사용할 수 있음 ) :
theme_jack <- function (base_size = 12, base_family = "") {
theme_gray(base_size = base_size, base_family = base_family) %+replace%
theme(
axis.text = element_text(colour = "white"),
axis.title.x = element_text(colour = "pink", size=rel(3)),
axis.title.y = element_text(colour = "blue", angle=45),
panel.background = element_rect(fill="green"),
panel.grid.minor.y = element_line(size=3),
panel.grid.major = element_line(colour = "orange"),
plot.background = element_rect(fill="red")
)
}
마스킹없이 ggplot이 나중에 호출 될 때 사용자 정의 테마를 기본값으로 설정하려면 다음을 수행하십시오.
theme_set(theme_jack())
현재 설정된 테마의 요소를 변경하려면 :
theme_update(plot.background = element_rect(fill="pink"), axis.title.x = element_text(colour = "red"))
현재 기본 테마를 개체로 저장하려면 :
theme_pink <- theme_get()
참고 theme_pink
리스트 반면 인 theme_jack
함수이다. 따라서 테마를 theme_jack use theme_set(theme_jack())
로 되돌리려면 theme_pink use로 돌아가십시오 theme_set(theme_pink)
.
당신은 대체 할 수 있습니다 theme_gray
로 theme_bw
의 정의에 theme_jack
원하는 경우. 사용자 정의 테마가 비슷 theme_bw
하지만 모든 격자 선 (x, y, 주 및 부)이 꺼져있는 경우 :
theme_nogrid <- function (base_size = 12, base_family = "") {
theme_bw(base_size = base_size, base_family = base_family) %+replace%
theme(
panel.grid = element_blank()
)
}
마지막으로 ggplot에서 등치 또는 다른 맵을 플로팅 할 때 유용한보다 급진적 인 테마는 여기 에서 논의를 기반으로 하지만 지원 중단을 피하기 위해 업데이트되었습니다. 여기서 목표는 회색 배경과지도에서 산만해질 수있는 기타 기능을 제거하는 것입니다.
theme_map <- function (base_size = 12, base_family = "") {
theme_gray(base_size = base_size, base_family = base_family) %+replace%
theme(
axis.line=element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank(),
axis.ticks=element_blank(),
axis.ticks.length=unit(0.3, "lines"),
axis.ticks.margin=unit(0.5, "lines"),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
legend.background=element_rect(fill="white", colour=NA),
legend.key=element_rect(colour="white"),
legend.key.size=unit(1.2, "lines"),
legend.position="right",
legend.text=element_text(size=rel(0.8)),
legend.title=element_text(size=rel(0.8), face="bold", hjust=0),
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.margin=unit(0, "lines"),
plot.background=element_blank(),
plot.margin=unit(c(1, 1, 0.5, 0.5), "lines"),
plot.title=element_text(size=rel(1.2)),
strip.background=element_rect(fill="grey90", colour="grey50"),
strip.text.x=element_text(size=rel(0.8)),
strip.text.y=element_text(size=rel(0.8), angle=-90)
)
}
답변
다음은 ggplot2 배경을 흰색으로 만드는 사용자 지정 테마와 출판물 및 포스터에 적합한 기타 변경 사항입니다. + mytheme에 붙이세요. + mytheme 이후에 + theme별로 옵션을 추가하거나 변경하려면 + mytheme에서 해당 옵션을 대체합니다.
library(ggplot2)
library(cowplot)
theme_set(theme_cowplot())
mytheme = list(
theme_classic()+
theme(panel.background = element_blank(),strip.background = element_rect(colour=NA, fill=NA),panel.border = element_rect(fill = NA, color = "black"),
legend.title = element_blank(),legend.position="bottom", strip.text = element_text(face="bold", size=9),
axis.text=element_text(face="bold"),axis.title = element_text(face="bold"),plot.title = element_text(face = "bold", hjust = 0.5,size=13))
)
ggplot(data=data.frame(a=c(1,2,3), b=c(2,3,4)), aes(x=a, y=b)) + mytheme + geom_line()