R の scale_colour_discrete 関数

胡金庫 2023年1月30日
  1. scale_colour_discrete を使用して、R の colour スケールラベルを変更する
  2. scale_colour_discrete を使用して、R の colour スケール名を変更する
R の scale_colour_discrete 関数

この記事では、R で scale_colour_discrete を使用する方法を紹介します。

scale_colour_discrete を使用して、R の colour スケールラベルを変更する

scale_colour_discrete は、一般に離散値を持つ必要がある colour スケールラベルを変更するために使用できます。この場合、フィルタリングされた babynames データセットを使用した例を示します。このデータセットからは、より簡単にするために 5つの名前のみが抽出されます。geom_line を使用して折れ線グラフを描画します。x /y 軸にマッピングされた変数は、赤ちゃんの数と生まれた年です。名前は colour スケールにマッピングされているため、それぞれに異なる色がマッピングされているという凡例があります。そのうちの。scale_colour_discrete 関数の labels パラメータを使用して、既存のスケールラベルを置き換えることができる値のベクトルを渡すことができます。

library(ggplot2)
library(gridExtra)
library(babynames)
library(dplyr)

dat <- babynames %>%
  filter(name %in% c("Alice", "Maude", "Mae",
                     "Annie", "Ella")) %>% filter(sex=="F")

p3 <- ggplot(dat, aes(x = year, y = n, colour = name)) +
  geom_line() +
  scale_colour_discrete(
    labels = c("Al", "Mau", "Mae", "An", "El")) +
  scale_y_continuous(
    breaks = seq(0, 13000, 1000),
    name = "Number of babies") +
  scale_x_continuous(
    breaks = seq(1880, 2017, 12),
    name = "Year") +
  theme(
    legend.position = "left",
    legend.background = element_rect(fill = "white", colour = "black"),
    plot.title = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "brown"
    )) +
  ggtitle("Name Popularity Through Years")

p3

r1 の scale_colour_discrete

scale_colour_discrete を使用して、R の colour スケール名を変更する

scale_colour_discrete 関数のもう 1つの便利なパラメーターは、colour スケールタイトルを制御する name です。カスタム文字列値を name 引数に割り当てることができます。これにより、次のサンプルコードの凡例名が変更されます。

library(ggplot2)
library(gridExtra)
library(babynames)
library(dplyr)

dat <- babynames %>%
  filter(name %in% c("Alice", "Maude", "Mae",
                     "Annie", "Ella")) %>% filter(sex=="F")

p3 <- ggplot(dat, aes(x = year, y = n, colour = name)) +
  geom_line() +
  scale_colour_discrete(
    name = "Name",
    labels = c("Al", "Mau", "Mae", "An", "El")) +
  scale_y_continuous(
    breaks = seq(0, 13000, 1000),
    name = "Number of babies") +
  scale_x_continuous(
    breaks = seq(1880, 2017, 12),
    name = "Year") +
  theme(
    legend.position = "left",
    legend.background = element_rect(fill = "white", colour = "black"),
    plot.title = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "brown"
    )) +
  ggtitle("Name Popularity Through Years")


p3

r2 の scale_colour_discrete

前のプロットはすべての線を単一のパネルに描画しますが、facet_wrap 関数を使用して各線を別々の線に出力できます。facet_wrap は、最初の引数としてマップする必要のある変数を取ります。

library(ggplot2)
library(gridExtra)
library(babynames)
library(dplyr)

dat <- babynames %>%
  filter(name %in% c("Alice", "Maude", "Mae",
                     "Annie", "Ella")) %>% filter(sex=="F")

p4 <- ggplot(dat, aes(x = year, y = n, colour = name)) +
  geom_line() +
  scale_colour_discrete(
    name = "Name",
    labels = c("Al", "Mau", "Mae", "An", "El")) +
  scale_y_continuous(
    breaks = seq(0, 13000, 1000),
    name = "Number of babies") +
  scale_x_continuous(
    breaks = seq(1880, 2017, 12),
    name = "Year") +
  theme(
    legend.position = "left",
    legend.background = element_rect(fill = "white", colour = "black"),
    plot.title = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "brown"
    )) +
  ggtitle("Name Popularity Through Years") +
  facet_wrap(vars(name))

p4

r3 の scale_colour_discrete

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - R Plot