デフォルトでは、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
デフォルトでは、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'))
詳細はこちらQuick reference sheet for legends, axes and themes。
myplot + theme(panel.background = element_rect(fill='green', colour='red'))
theme_grayではなく、変更およびグリッド線の色/サイズの制御(より多くのオプションを含む、いくつかの追加のエキストラの一部で基づいて、独自のカスタムテーマを定義するには、次の非推奨opts
とtheme_rect
使用を避けるために
)at 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_pink
が、一方、リストであることを
theme_pink <- theme_get()
注:オブジェクトとして現在のデフォルトのテーマを保存するには
theme_update(plot.background = element_rect(fill="pink"), axis.title.x = element_text(colour = "red"))
をtheme_jack
は関数でした。テーマをtheme_jackに戻すにはtheme_set(theme_jack())
を使用し、theme_pinkに戻るには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()
)
}
最後に便利な、より過激なテーマの議論hereに基づいて、ggplotでchoroplethsまたは他のマップをプロットするが、推奨されなくなりました。ここでの目的は、灰色の背景やマップから気をそらす可能性のあるその他の機能を削除することです。
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)
)
}
これは非常に役に立ちます。参考までに、 'plot.background'を' theme'に渡さなければならないという議論が見つかりました。その他の引数はオプションです。 –
'theme_bw'もあり、白い背景と灰色のグリッド線を与えます。私はいつもそれを使用しています。印刷物のようにデフォルトの灰色の背景よりもはるかに優れています: 'myplot + theme_bw()' – ROLO
@これをデフォルトですべてのプロットに適用する方法はありますか? – krlmlr
デフォルトのB&W ggplotsのスクリプトの先頭にこれを入れます: 'ggplot < - function(...){ \t ggplot2 :: ggplot(...)+ theme_bw() } ' – ROLO