見出し画像

ggplot2: マニュアルで色を指定する

ボックスプロットの例で紹介したように、 aes() に、 fill または、 color を指定するとグラフに色付けすることができます。その際、色は自動的に選ばれたものが使用されます。これをマニュアルで指定したい場合には、 scale_fill_manual() または、 scale_color_manual() を用います。

scale_fill_manual() の使用例

geom_boxplot() のあとに、「+」 で続けて、要素の数だけ、色を指定します。
scale_fill_manual(values = c(色1, 色2, …)) という書式です。X軸に並んだ順番に色1, 色2 で色付けされます。(サンプルを並び替えたい場合は別に紹介します。)

ggplot(plot_data, aes(x = sample, y = read_count, fill = sample)) +
  geom_boxplot() + scale_fill_manual(values = c("salmon", "royalblue"))


色を指定したボックスプロット

色付けは、色の名前だけではなく、16進数で指定することもできます。

ggplot(plot_data, aes(x = sample, y = read_count, fill = sample)) +
  geom_boxplot() + scale_fill_manual(values = c("#FFFC63", "#7D5AFB"))


16進数で色を指定

ColorBrewer パレットを使用する

色付けしたい要素が多い場合は、視認性の高い ColorBrewer のパレットを使用することもできます。scale_fill_manual() の代わりに scale_fill_brewer() 関数で指定します。

input_data <- tibble("Sample1" = rnorm(100) + 10,
                     "Sample2" = rnorm(100) + 10,
                     "Sample3" = rnorm(100) + 10,
                     "Sample4" = rnorm(100) + 10,
                     "Sample5" = rnorm(100) + 10)
plot_data <- input_data %>%
  gather(starts_with("Sample"), key = "sample", value = "read_count")

ggplot(plot_data, aes(x = sample, y = read_count, fill = sample)) +
  geom_boxplot() + scale_fill_brewer(palette = "Spectral")

ここでは、パレットに "Spectral" を指定しています。ほかにも YlOrRd, YlOrBr, Set1, Set2, Dark2, Spectral などがあります。

scale_fill_brewer() で色付けした例




いいなと思ったら応援しよう!