2023.10.24作成  2024.9.30更新

これから研究を始める高校生と指導教員のために 第2版
探究活動と課題研究の進め方・論文の書き方・口頭とポスター発表の仕方
(これ研)

副読文書

V-1. データの値がそもそもばらつく対象の解析
母集団間でのデータ分布の違いの解析
(「これ研」本文の第3部第3.1, 3.2節;p. 84)

私のサイトでの本書紹介文

共立出版の本書紹介サイト ご購入もこちらからどうぞ

 「これから研究を始める高校生と指導教員のために 第2版;探究活動と課題研究の進め方・論文の書き方・口頭とポスター発表の仕方」(これ研)の第3部3.1節「母集団における、データの値の分布の要約」(p. 84)および3.2節「母集団間での、データ分布の違いの解析」(p. 87)で行っている解析と作図を、Rを使って行う方法の解説です。メダカの体長と産卵数を例に、母集団間でのデータ分布の違いの示し方を説明します。「これ研」の第3部第3章「データの値がそもそもばらつく対象の解析」(p. 83)を読んで、こうした対象の解析について理解しておいて下さい。

  1. 解析に用いるcsvファイルのRへの読み込み
  2. 統計量(平均・標準偏差・中央値・四分位数)の計算(「これ研」本文の第3部3.1.1, 3.1.2項;p. 85, 第3部5.3.6項; p. 115)
    1. 平均と標準偏差の計算(「これ研」本文の第3部3.1.1項;p. 85, 第3部5.3.6項; p. 115)
      1. 全地域についてまとめて計算
      2. 特定の地域について計算
    2. 中央値と四分位数の計算(「これ研」本文の第3部3.1.2項;p. 86)
      1. 全地域についてまとめて計算
      2. 特定の地域について計算
  3. 作図(「これ研」本文の第3部3.2節;p. 87)
    1. メダカの体長のヒストグラム(「これ研」本文の図3.7;p. 88)
      1. 全地域のヒストグラムを並べて描く
      2. 全地域のヒストグラムを一枚の図に描く
      3. 特定の地域のヒストグラムを描く
    2. メダカの体長の箱ひげ図(「これ研」本文の図3.8;p. 90)
      1. 全地域の箱ひげ図を並べて描く
      2. 特定の地域の箱ひげ図を描く
    3. メダカの体長の点グラフ(「これ研」本文の図3.9;p. 91)
      1. 全地域の点グラフを並べて描く
      2. 特定の地域の点グラフを描く
    4. メダカの産卵数の棒グラフ(「これ研」本文の図3.10;p. 91)
      1. 全地域の棒グラフを並べて描く
      2. 特定の地域の棒グラフを描く

 RStudioを起動して下さい。起動方法の詳しい説明は、RStusioの起動の仕方を参照して下さい。そして、作業ディレクトリの指定の説明に従って作業ディレクトリを指定します。

作業ディレクトリの指定

setwd("/Users/sakai/Documents/書籍等原稿/これ研2版/課題研究解析")

# パソコン内での作業ディレクトリの位置がわかっている場合はこの方法が便利です。作業ディレクトリの位置の知り方は作業ディレクトリの表示を参照して下さい。

# あなたの作業ディレクトリの位置を""で囲んで書きます。

# この命令文を実行しておきます。

# 作業ディレクトリの指定

 作図にはtidyverseというものを用います。tidyverseをインストールしてありますか? まだならば、作図の準備の説明に従ってインストールして下さい。インストールしたら、tidyverseをRに読み込みます。

tidyverseのRへの読み込み

library(tidyverse)

# RStudioを起動しこの命令文を実行しておきます。Rstudio起動後、一度だけ実行すればよいです。Rstudioを終了して再び起動したときは再実行する必要があります。

# パッケージ(関数集)のRへの読み込み

 解析では、データフレームの中の特定のデータ列を指定することを行います。指定の方法です。

データフレームの中の特定のデータ列の指定方法

データフレーム名$データ列名

# データフレーム名を書き、$を挟んで、指定したいデータ列名を書きます。

# 実行例

d$Angle.degree
d$Flying.distance.m

# データフレームdに入っているデータ列Angle.degree, flying.distance.mを指定します。

このページの文頭に戻る

1. 解析に用いるcsvファイルのRヘの読み込み

 csvファイル「Medaka.csv」(画面1)に、メダカの地域(Locality)・体長(Length.mm)・産卵数(Egg.number)・体重(Weight.mg)が入っています(架空データです)。このcsvファイルのデータを使って解析と作図を行います。

画面1
このデータのcsvファイルのダウンロード

このcsvファイルをダウンロードして、あなたの作業ディレクトリに入れて下さい(作業ディレクトリの指定を参照)。

 ご自身のデータを用いる場合は、そのデータが入ったcsvファイルを作業ディレクトリに入れて下さい。Excelで作ったファイルをcsvファイルに変換する方法は、Excelで作った解析用ファイルのcsv形式での保存を参照して下さい。

 csvファイルをRに読み込み、データフレームに格納します。

csvファイルのRへの読み込み

d <- read.csv("Medaka.csv")

# csvファイル「Medaka.csv」を読み込んでデータフレームdに格納します。ファイル名を""で囲みます。ファイル名の拡張子「.csv」も忘れずに書きます。

# データフレームの名称(この例ではd)はお好みのものでよいです。

# Excelで作った解析用ファイルのRへの読み込み

 地域の並び順を指定したい場合は以下の命令を実行します。これを実行しないとアルファベット順に並びます。

データの並び順の指定

d$Locality <- factor(d$Locality, levels=c("Tohoku", "Kanto", "Kansai", "Kyushu"))

# 地域の並び順を指定します。データフレームd中のデータ列Localityに地域名が入っています。並べたい順番に地域名を書きます。地域名は文字情報なので、地域名を""で囲みます。

# d$Localityの中身を上書きするためにd$Localityに再格納します。

# この命令を実行しないとアルファベット順に地域が並びます。

# データの並び順の指定

このページの文頭に戻る

2. 統計量(平均・標準偏差・中央値・四分位数)の計算
(「これ研」本文の第3部3.1.1, 3.1.2項;p. 85, 第3部5.3.6項; p. 115)

    

 メダカのデータを用いて、色々な統計量(平均・標準偏差・中央値・四分位数)を計算する方法を説明します。

2.1. 平均と標準偏差の計算
(「これ研」本文の第3部3.1.1項;p. 85, 第3部5.3.6項; p. 115)

   

 平均と標準偏差の計算をします。標準偏差の関数はRに備わっているので自分で定義する必要はありません。全地域についてまとめて計算する方法と、特定の地域について計算する方法とがあります。

2.1.1. 全地域についてまとめて計算

全地域についてまとめて計算

# 各地域の体長の平均を計算

tapply(d$Length.mm, d$Locality, mean)

# データ列d$Localityに入っている地域ごとに、データ列d$Length.mmに入っている体長の平均を計算します。

# meanが、平均を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# 各地域の体長の標準偏差を計算

tapply(d$Length.mm, d$Locality, sd)

# データ列d$Localityに入っている地域ごとに、データ列d$Length.mmに入っている体長の標準偏差を計算します。

# sdが、標準偏差を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# tapplyを用いた一括計算

このページの文頭に戻る

2.1.2. 特定の地域について計算

 ある特定の地域について計算をしたいこともあるでしょう。その場合は、その地域のデータを取り出して計算します。

特定の地域について計算

# 特定の地域のデータを取り出す

d2 <- filter(d, Locality == "Tohoku")

# Tohokuのデータを取り出す場合です。

# データフレームdから、データ列Localityに入っている地域名がTohokuのものを取り出しデータフレームd2に格納します。=を2つ繋げ==とすることに注意して下さい。地域名は文字情報なので、地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではd2)はお好みのものでよいです。

# 複数の地域のデータを取り出すこともできます(すぐ下のリンクを参照)。

# データフレーム中の特定のデータの取り出し

# 平均と標準偏差を計算

mean(d2$Length.mm)
sd(d2$Length.mm)

# データフレームd2に格納した地域の平均および標準偏差を計算します。mean()で平均を、sd()で標準偏差を計算します。()内に計算したいデータを入れます。

# 複数の地域を取り出した場合は、全地域についてまとめて計算と同じ方法で計算します。

このページの文頭に戻る

2.2. 中央値と四分位数の計算
(「これ研」本文の第3部3.1.2項;p. 86)

 メダカの体長の中央値と四分位数を計算しましょう。csvファイル「Medaka.csv」をデータフレームdに格納済みであるとします。格納していない場合は、解析に用いるcsvファイルのRヘの読み込みの説明に従って格納して下さい。地域の並び順を指定したい場合はその指定も行って下さい。ご自身のデータを用いる場合は、そのファイルをデータフレームdに格納して下さい。

2.2.1. 全地域についてまとめて計算

 以下を実行すると、全地域のメダカについてまとめて計算します。

中央値と四分位数の計算

tapply(d$Length.mm, d$Locality, quantile)

# データ列d$Localityに入っている地域ごとに、データ列d$Length.mmに入っている体長の中央値と四分位数を計算します。

# quantileが、中央値と四分位数を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# 実行結果です。25%が第1四分位数、50%が中央値、75%が第3四分位数です。0%が最小値、100%が最大値です。

# tapplyを用いた一括計算

このページの文頭に戻る

2.2.2. 特定の地域について計算

 特定の地域の中央値と四分位数を計算することもできます。

特定の地域について計算

# 特定の地域のデータを取り出す

d2 <- filter(d, Locality == "Tohoku")

# Tohokuのデータを取り出す場合です。

# データフレームdから、データ列Localityに入っている地域名がTohokuのものを取り出しデータフレームd2に格納します。=を2つ繋げ==とすることに注意して下さい。地域名は文字情報なので、地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではd2)はお好みのものでよいです。

# 複数の地域のデータを取り出すこともできます(すぐ下のリンクを参照)。

# データフレーム中の特定のデータの取り出し

quantile(d2$Length.mm)

# データフレームd2に格納した地域の中央値と四分位数を計算します。quantile()で計算します。()内に計算したいデータを入れます。

# 実行結果です。東北のメダカの体長の計算結果が出力されています。25%が第1四分位数、50%が中央値、75%が第3四分位数です。0%が最小値、100%が最大値です。

# 複数の地域を取り出した場合は、全地域についてまとめて計算と同じ方法で計算します。

このページの文頭に戻る

3. 作図
(「これ研」本文の第3部3.2節; p. 87)

 tidyverseを使っての作図の仕方を説明します。tidyverseをRに読み込んでいますか? 読み込んでいない場合は、library(tidyverse)を実行して読み込んで下さい。

 作図の命令文の基本です。

作図の命令文の基本

ggplot(データフレーム名, aes(データ)) +
geom_描く図の英語名() +
書式の命令文 +
書式の命令文

# ggplotで、用いるデータを指定します。

# geom_で、描く図を指定します。

# 書式の命令文を+で繋げます。いくつでも繋げることができます。最後の命令文の後に+は不要です。

 以下では、図の軸の説明が英語の図を描きます。しかし、日本語の論文・プレゼンテーションに使う図の説明文は日本語にしましょう。日本語にする場合の説明も添えているので参照して下さい。

3.1. メダカの体長のヒストグラム
(「これ研」本文の図3.7; p. 88)

 メダカの体長のヒストグラム(画面2-1, 2-2, 3-1, 3-2, 4-1, 4-2)を作図しましょう。csvファイル「Medaka.csv」をデータフレームdに格納済みであるとします。格納していない場合は、解析に用いるcsvファイルのRヘの読み込みの説明に従って格納して下さい。地域の並び順を指定したい場合はその指定も行って下さい。ご自身のデータを用いる場合は、そのファイルをデータフレームdに格納して下さい。

全地域のヒストグラムを並べて描く(描き方)
画面2-1
画面2-2

全地域のヒストグラムを一枚の図に描く(描き方)
画面3-1
画面3-2

特定の地域のヒストグラムを描く(描き方)
画面4-1
画面4-2

3.1.1. 全地域のヒストグラムを並べて描く

 全地域のヒストグラムを並べて描く(画面2-1, 2-2)方法を説明します。

全地域のヒストグラムを並べて描く

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d, aes(x = Length.mm)) +

# データフレームdを指定します。

# x = Length.mmとして、ヒストグラムを描く体長のデータ列Length.mmをx軸(横軸)に指定します。xは小文字です。

# 末尾の+を忘れないで下さい。

# ヒストグラムにおける、作図に用いるデータフレームとデータの指定

geom_histogram() +

# 描く図としてヒストグラムを指定します。

# 末尾の+を忘れないで下さい。

# ヒストグラムの指定

facet_wrap(~ Locality, ncol = 1) +

# 複数の図を並べて描く場合はfacet_wrap()と命令します。

# データ列Localityに入っている地域ごとにヒストグラムを描きます。Localityの前の~を忘れずに書いて下さい。

# 図の並べ方をncol(またはnrow)で指定します。ncol=1にすると縦1列に並びます。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「facet_wrap(~ Locality, ncol = 1)」とします。

# 複数の図を並べて描く

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "Body length (mm)", y = "Frequency") +

# x軸(横軸)の名称をBody length (mm)に、y軸(縦軸)の名称をFrequencyにします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 10)) +

# y軸(縦軸)を描く範囲を0から10に指定します。ヒストグラムの場合は、y軸の最小値を必ず0にします。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.title.x = element_text(size = 18),
axis.text.x = element_text(size = 9),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)・y軸(縦軸)の名称(axis.title.x, axis.title.y)の文字の大きさを18に、x軸・y軸の目盛り(axis.text.x, axis.text.y)の文字の大きさを9に指定します。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面2-2のように軸の説明を日本語にする場合は、以下の2つの命令文を書き替えます。他の命令文はそのままでよいです。

labs(x = "体長(mm)", y = "頻度") +

# x軸(横軸)の名称を体長(mm)に、y軸(縦軸)の名称を頻度にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

# Tohokuといった文字を日本語にしたい場合は、この図をPowerPoint等に読み込んで修正するのが手っ取り早いです。英語を白く塗りつぶしたり切り取ったりして、日本語を書き込みましょう。PowerPoint等への図の読み込み方は、図の保存・コピーの仕方を参照して下さい。

このページの文頭に戻る

3.1.2. 全地域のヒストグラムを一枚の図に描く

 全地域のヒストグラムを一枚の図に描く(画面3-1, 3-2)方法を説明します。

全地域のヒストグラムを一枚の図に描く

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d, aes(x = Length.mm, color = Locality, fill = Locality)) +

# データフレームdを指定します。

# x = Length.mmとして、体長(Length.mm)が入っているデータ列Length.mmをx軸(横軸)に指定します。xは小文字です。

# color = Locality, fill = Localityとして、棒の枠線(color)および内部(fill)を、Localityに入っている地域名(Tohokuなど)ごとに色分けします。colorとfillに同じデータ列を指定します。

# 末尾の+を忘れないで下さい。

# ヒストグラムにおける、作図に用いるデータフレームとデータの指定

geom_histogram(position = "dodge") +

# 描く図としてヒストグラムを指定します。

# position="dodge"と指定して、各地域の同じデータ値の棒(たとえば体長2.0 - 2.2 mmの棒)を、重ならないようにずらして横に並べます。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_histogram(position = "dodge")」とします。

# ヒストグラムの指定

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "Body length (mm)", y = "Frequency") +

# x軸(横軸)の名称をBody length (mm)に、y軸(縦軸)の名称をFrequencyにします。名称を""で囲みます。

# x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 10)) +

# y軸(縦軸)を描く範囲を0から10に指定します。ヒストグラムの場合は、y軸の最小値を必ず0にします。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.title.x = element_text(size = 18),
axis.text.x = element_text(size = 9),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)・y軸(縦軸)の名称(axis.title.x, axis.title.y)の文字の大きさを18に、x軸・y軸の目盛り(axis.text.x, axis.text.y)の文字の大きさを9に指定します。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面3-2のように軸の説明を日本語にする場合は、以下の2つの命令文を書き替えます。他の命令文はそのままでよいです。

labs(x = "体長(mm)", y = "頻度") +

# x軸(横軸)の名称を体長(mm)に、y軸(縦軸)の名称を頻度にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

# Locality, Tohokuといった文字を日本語にしたい場合は、この図をPowerPoint等に読み込んで修正するのが手っ取り早いです。英語を白く塗りつぶしたり切り取ったりして、日本語を書き込みましょう。PowerPoint等への図の読み込み方は、図の保存・コピーの仕方を参照して下さい。

このページの文頭に戻る

3.1.3. 特定の地域のヒストグラムを描く

 特定の地域のヒストグラムを描く(画面4-1, 4-2)方法を説明します。

 まず始めに、作図に用いるデータを取りだしてデータフレームに格納します。

作図に用いる値の格納

d2 <- filter(d, Locality == "Tohoku")

# Tohokuのデータを取り出す場合です。

# データフレームdから、データ列Localityに入っている地域名がTohokuのものを取り出しデータフレームd2に格納します。=を2つ繋げ==とすることに注意して下さい。地域名は文字情報なので、地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではd2)はお好みのものでよいです。

# 複数の地域のデータを取り出すこともできます(すぐ下のリンクを参照)。

# データフレーム中の特定のデータの取り出し

 格納したデータを用いて作図します。

特定の地域のヒストグラムを作図

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d2, aes(x = Length.mm)) +

# データフレームd2を指定します。

# x = Length.mmとして、ヒストグラムを描く体長のデータ列Length.mmをx軸(横軸)に指定します。xは小文字です。

# 末尾の+を忘れないで下さい。

# ヒストグラムにおける、作図に用いるデータフレームとデータの指定

geom_histogram() +

# 描く図としてヒストグラムを指定します。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_histogram()」とします。

# ヒストグラムの指定

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "Body length (mm)", y = "Frequency") +

# x軸(横軸)の名称をBody length (mm)に、y軸(縦軸)の名称をFrequencyにします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 8)) +

# y軸(縦軸)を描く範囲を0から8に指定します。ヒストグラムの場合は、y軸の最小値を必ず0にします。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.title.x = element_text(size = 18),
axis.text.x = element_text(size = 9),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)・y軸(縦軸)の名称(axis.title.x, axis.title.y)の文字の大きさを18に、x軸・y軸の目盛り(axis.text.x, axis.text.y)の文字の大きさを9に指定します。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面4-2のように軸の説明を日本語にする場合は、以下の2つの命令文を書き替えます。他の命令文はそのままでよいです。

labs(x = "体長(mm)", y = "頻度") +

# x軸(横軸)の名称を体長(mm)に、y軸(縦軸)の名称を頻度にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

このページの文頭に戻る

3.2. メダカの体長の箱ひげ図
(「これ研」本文の図3.8; p. 90)

 メダカの体長の箱ひげ図(画面5-1, 5-2, 6-1, 6-2)を作図しましょう。csvファイル「Medaka.csv」をデータフレームdに格納済みであるとします。格納していない場合は、解析に用いるcsvファイルのRヘの読み込みの説明に従って格納して下さい。地域の並び順を指定したい場合はその指定も行って下さい。ご自身のデータを用いる場合は、そのファイルをデータフレームdに格納して下さい。

全地域の箱ひげ図を並べて描く(描き方)
画面5-1
画面5-2

特定の地域の箱ひげ図を描く(描き方)
画面6-1
画面6-2

3.2.1. 全地域の箱ひげ図を並べて描く

 全地域の箱ひげ図を並べて描く(画面5-1, 5-2)方法を説明します。

全地域の箱ひげ図を並べて描く

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d, aes(x = Locality, y = Length.mm)) +

# データフレームdを指定します。

# x = Localityとして、地域(Locality)が入っているデータ列Localityをx軸(横軸)に指定します。xは小文字です。

# y = Length.mmとして、体長(Length.mm)が入っているデータ列Length.mmをy軸(縦軸)に指定します。yは小文字です。

# データ列Localityに入っている地域ごとに、データ列Length.mmに入っている体長のデータを作図します。

# 末尾の+を忘れないで下さい。

# 箱ひげ図における、作図に用いるデータフレームとデータの指定

geom_boxplot() +

# 描く図として箱ひげ図を指定します。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_boxplot()」とします。

# 箱ひげ図の指定

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "", y = "Body length (mm)") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称をBody length (mm)にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 50)) +

# y軸(縦軸)を描く範囲を0から50に指定します。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.text.x = element_text(size = 18),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)の目盛り(axis.text.x)には地域名(Tohokuなど)が入っています。地域名とy軸(縦軸)の名称(axis.title.y)の文字の大きさを18に、y軸の目盛り(axis.text.y)の文字の大きさを9に指定します。x軸(横軸)の名称(axis.title.x)は書かないので、その文字の大きさも指定しません。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面5-2のように軸の説明を日本語にする場合は、2つの命令文(下記の1つ目と3つ目)を書き替え、1つの命令文(下記の2つ目)を書き足します。他の命令文はそのままでよいです。

labs(x = "", y = "体長(mm)") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称を体長(mm)にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_x_discrete(labels = c("東北", "関東", "関西", "九州")) +

# 書き足す命令文です。labs(x = "", y = "体長(mm)") +の次に書いて下さい。

# x軸(横軸)の各データ群名として東北, 関東, 関西, 九州を書き込みます。d$Localityでの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# x軸にデータ群名を書き込む

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

このページの文頭に戻る

3.2.2. 特定の地域の箱ひげ図を描く

 特定の地域の箱ひげ図を描く(画面6-1, 6-2)方法を説明します。

 まず始めに、データフレームdから作図に用いる値(作図する地域のデータ)を取り出して格納します。

作図に用いる値の格納

d2 <- filter(d, Locality == "Tohoku")

# Tohokuのデータを取り出す場合です。

# データフレームdから、データ列Localityに入っている地域名がTohokuのものを取り出しデータフレームd2に格納します。=を2つ繋げ==とすることに注意して下さい。地域名は文字情報なので、地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではd2)はお好みのものでよいです。

# 複数の地域のデータを取り出すこともできます(すぐ下のリンクを参照)。

# データフレーム中の特定のデータの取り出し

 作図の仕方は、全地域の箱ひげ図を並べて描く場合と同じです。ただし、冒頭の命令文のデータフレームはdではなくd2です。

特定の地域の箱ひげ図を描く

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d2, aes(x = Locality, y = Length.mm)) +

# データフレームd2を指定します。

# x = Localityとして、地域(Locality)が入っているデータ列Localityをx軸(横軸)に指定します。xは小文字です。

# y = Length.mmとして、体長(Length.mm)が入っているデータ列Length.mmをy軸(縦軸)に指定します。yは小文字です。

# データ列Localityに入っている地域ごとに、データ列Length.mmに入っている体長のデータを作図します。

# 末尾の+を忘れないで下さい。

# 箱ひげ図における、作図に用いるデータフレームとデータの指定

geom_boxplot() +

# 描く図として箱ひげ図を指定します。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_boxplot()」とします。

# 箱ひげ図の指定

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "", y = "Body length (mm)") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称をBody length (mm)にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 50)) +

# y軸(縦軸)を描く範囲を0から50に指定します。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.text.x = element_text(size = 18),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)の目盛り(axis.text.x)には地域名(Tohokuなど)が入っています。地域名とy軸(縦軸)の名称(axis.title.y)の文字の大きさを18に、y軸の目盛り(axis.text.y)の文字の大きさを9に指定します。x軸(横軸)の名称(axis.title.x)は書かないので、その文字の大きさも指定しません。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面6-2のように軸の説明を日本語にする場合は、2つの命令文(下記の1つ目と3つ目)を書き替え、1つの命令文(下記の2つ目)を書き足します。他の命令文はそのままでよいです。

labs(x = "", y = "体長(mm)") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称を体長(mm)にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_x_discrete(labels = c("東北")) +

# 書き足す命令文です。labs(x = "", y = "体長(mm)") +の次に書いて下さい。

# x軸(横軸)の各データ群名として東北を書き込みます。地域名を""で囲みます。

# x軸にデータ群名を書き込む

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

このページの文頭に戻る

3.3. メダカの体長の点グラフ
(「これ研」本文の図3.9; p. 91)

 メダカの体長の点グラフ(画面7-1, 7-2, 8-1, 8-2)を作図しましょう。csvファイル「Medaka.csv」をデータフレームdに格納済みであるとします。格納していない場合は、解析に用いるcsvファイルのRヘの読み込みの説明に従って格納して下さい。地域の並び順を指定したい場合はその指定も行って下さい。ご自身のデータを用いる場合は、そのファイルをデータフレームdに格納して下さい。

全地域の点グラフを並べて描く(描き方)
画面7-1
画面7-2

特定の地域の点グラフを並べて描く(描き方)
画面8-1
画面8-2

3.3.1. 全地域の点グラフを並べて描く

 全地域の点グラフを描く(画面7-1, 7-2)方法を説明します。

 まず始めに、作図に用いる値(各地域における体長の平均と標準偏差)を計算してデータフレームに格納します。

作図に用いる値の格納

x <- c("Tohoku", "Kanto", "Kansai", "Kyushu")

# 地域名を、データフレームxに格納します。d$Localityでの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではx)はお好みのものでよいです。

# データをRの中で書いてデータフレームに格納

y <- tapply(d$Length.mm, d$Locality, mean)

# データ列d$Localityに入っている地域ごとに、データ列d$Length.mmに入っている体長の平均を計算します。

# meanが、平均を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# 体長の平均をデータフレームyに格納します。格納するデータフレームの名称(この例ではy)はお好みのものでよいです。

# tapplyを用いた一括計算

z <- tapply(d$Length.mm, d$Locality, sd)

# データ列d$Localityに入っている地域ごとに、データ列d$Length.mmに入っている体長の標準偏差を計算します。

# sdが、標準偏差を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# 体長の標準偏差をデータフレームzに格納します。格納するデータフレームの名称(この例ではz)はお好みのものでよいです。

d2 <- data.frame(x, y, z)

# x, y, zのデータを統合してデータフレームd2に格納します。格納するデータフレームの名称(この例ではd2)はお好みのものでよいです。

# 複数のデータを統合して新しいデータフレームを作成

d2$x <- factor(d2$x, levels =c("Tohoku", "Kanto", "Kansai", "Kyushu"))

# 地域の並び順を指定します。データフレームd2中のデータ列xに地域名が入っています。並べたい順番に地域名を書きます。地域名は文字情報なので、地域名を""で囲みます。この命令を実行しないとアルファベット順に地域名が並びます。

# データフレームdに対してデータの並び順を指定ずみであったとしても、データフレームd2に対しても改めて指定する必要があります。dとd2は別のデータフレームだからです。

# この命令を実行しないとアルファベット順に地域が並びます。

# データの並び順の指定

# データフレームd2の中身は以下のようになっています。

 格納したデータを用いて点グラフを作図します。

全地域の点グラフを並べて描く

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d2, aes(x = x, y = y)) +

# データフレームd2を指定します。

# x = xとして、地域名が入っているデータ列xをx軸(横軸)に指定します。「x =」のxは小文字です。

# y = yとして、体長が入っているデータ列yをy軸(縦軸)に指定します。「y =」のyは小文字です。

# 末尾の+を忘れないで下さい。

# 点グラフにおける、作図に用いるデータフレームとデータの指定

geom_point(size = 4) +

# 描く図として点グラフを指定します。

# size = で点の大きさを指定します。4にしています。

# 末尾の+を忘れないで下さい。

# 散布図・点グラフの指定

geom_errorbar(aes(ymin = y - z, ymax = y + z), width = 0.1) +

# 標準偏差を描きます。

# ymin =, ymax =で、標準偏差の縦棒の下端と上端の値を指定します。平均 – 標準偏差(y - z)から平均+標準偏差(y + z)まで縦棒を描きます。

# width =で上下の横棒の幅を指定します。0.1にしています。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_errorbar(aes(ymin = y - z, ymax = y + z), width = 0.1)」とします。

# 標準偏差・標準誤差の描き込み

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "", y = "Body length (mm)") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称をBody length (mm)にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 50)) +

# y軸(縦軸)を描く範囲を0から50に指定します。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.text.x = element_text(size = 18),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)の目盛り(axis.text.x)には地域名(Tohokuなど)が入っています。地域名とy軸(縦軸)の名称(axis.title.y)の文字の大きさを18に、y軸の目盛り(axis.text.y)の文字の大きさを9に指定します。x軸(横軸)の名称(axis.title.x)は書かないので、その文字の大きさも指定しません。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面7-2のように軸の説明を日本語にする場合は、2つの命令文(下記の1つ目と3つ目)を書き替え、1つの命令文(下記の2つ目)を書き足します。他の命令文はそのままでよいです。

labs(x = "", y = "体長(mm)") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称を体長(mm)にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_x_discrete(labels = c("東北", "関東", "関西", "九州")) +

# 書き足す命令文です。labs(x = "", y = "体長(mm)") +の次に書いて下さい。

# x軸(横軸)の各データ群名として東北, 関東, 関西, 九州を書き込みます。d$Localityでの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# x軸にデータ群名を書き込む

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

このページの文頭に戻る

3.3.2. 特定の地域の点グラフを描く

画面12

 特定の地域の点グラフを描く(画面8-1, 8-2)方法を説明します。1地域だけを描くことはあまりないと思うので、2地域を選ぶ例です。

 まず始めに、データフレームdから作図に用いる値(作図する地域のデータ)を取り出して格納します。

作図に用いる値の格納

d2 <- filter(d, Locality == "Tohoku" | Locality == "Kanto")

# TohokuとKantoのデータを取り出す場合です。

# データフレームdから、データ列Localityに入っている地域名がTohokuまたはKantoのものを取り出しデータフレームd2に格納します。=を2つ繋げ==とすることに注意して下さい。地域名は文字情報なので、地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではd2)はお好みのものでよいです。

# データフレーム中の特定のデータの取り出し

x <- c("Tohoku", "Kanto")

# 地域名を、データフレームxに格納します。データの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではx)はお好みのものでよいです。

# データをRの中で書いてデータフレームに格納

y <- tapply(d2$Length.mm, d2$Locality, mean)

# データ列d2$Localityに入っている地域ごとに、データ列d2$Length.mmに入っている体長の平均を計算します。

# meanが、平均を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# データフレームはdではなくd2です。

# 体長の平均をデータフレームyに格納します。格納するデータフレームの名称(この例ではy)はお好みのものでよいです。

# tapplyを用いた一括計算

z <- tapply(d2$Length.mm, d2$Locality, sd)

# データ列d2$Localityに入っている地域ごとに、データ列d2$Length.mmに入っている体長の標準偏差を計算します。

# sdが、標準偏差を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# データフレームはdではなくd2です。

# 体長の標準偏差をデータフレームzに格納します。格納するデータフレームの名称(この例ではz)はお好みのものでよいです。

d3 <- data.frame(x, y, z)

# x, y, zのデータを統合してデータフレームd3に格納します。格納するデータフレームの名称(この例ではd3)はお好みのものでよいです。

# 複数のデータを統合して新しいデータフレームを作成

d3$x <- factor(d3$x, levels =c("Tohoku", "Kanto"))

# 地域の並び順を指定します。データフレームd3中のデータ列xに地域名が入っています。並べたい順番に地域名を書きます。地域名は文字情報なので、地域名を""で囲みます。この命令を実行しないとアルファベット順に地域名が並びます。

# d3$xの中身を上書きするためにd3$xに再格納します。

# データフレームdに対してデータの並び順を指定ずみであったとしても、データフレームd3に対しても改めて指定する必要があります。dとd3は別のデータフレームだからです。

# この命令を実行しないとアルファベット順に地域が並びます。

# データの並び順の指定

# データフレームd3の中身は以下のようになっています。

 作図の仕方は、全地域の点グラフ描く場合と同じです。ただし、冒頭の命令文のデータフレームはd2ではなくd3です。

特定の地域の点グラフを描く

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d3, aes(x = x, y = y)) +

# データフレームd3を指定します。

# x = xとして、地域名が入っているデータ列xをx軸(横軸)に指定します。「x =」のxは小文字です。

# y = yとして、体長が入っているデータ列yをy軸(縦軸)に指定します。「y =」のyは小文字です。

# 末尾の+を忘れないで下さい。

# 点グラフにおける、作図に用いるデータフレームとデータの指定

geom_point(size = 4) +

# 描く図として点グラフを指定します。

# size = で点の大きさを指定します。4にしています。

# 末尾の+を忘れないで下さい。

# 散布図・点グラフの指定

geom_errorbar(aes(ymin = y - z, ymax = y + z), width = 0.1) +

# 標準偏差を描きます。

# ymin =, ymax =で、標準偏差の縦棒の下端と上端の値を指定します。平均 – 標準偏差(y - z)から平均+標準偏差(y + z)まで縦棒を描きます。

# width =で上下の横棒の幅を指定します。0.1にしています。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_errorbar(aes(ymin = y - z, ymax = y + z), width = 0.1)」とします。

# 標準偏差・標準誤差の描き込み

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "", y = "Body length (mm)") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称をBody length (mm)にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 50)) +

# y軸(縦軸)を描く範囲を0から50に指定します。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.text.x = element_text(size = 18),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)の目盛り(axis.text.x)には地域名(Tohokuなど)が入っています。地域名とy軸(縦軸)の名称(axis.title.y)の文字の大きさを18に、y軸の目盛り(axis.text.y)の文字の大きさを9に指定します。x軸(横軸)の名称(axis.title.x)は書かないので、その文字の大きさも指定しません。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面8-2のように軸の説明を日本語にする場合は、2つの命令文(下記の1つ目と3つ目)を書き替え、1つの命令文(下記の2つ目)を書き足します。他の命令文はそのままでよいです。

labs(x = "", y = "体長(mm)") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称を体長(mm)にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_x_discrete(labels = c("東北", "関東")) +

# 書き足す命令文です。labs(x = "", y = "体長(mm)") +の次に書いて下さい。

# x軸(横軸)の各データ群名として東北, 関東を書き込みます。データの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# x軸にデータ群名を書き込む

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

このページの文頭に戻る

3.4 メダカの産卵数の棒グラフ
(「これ研」本文の図3.10; p. 91)

 メダカの産卵数の棒グラフ(画面9-1, 9-2, 10-1, 10-2)を作図しましょう。csvファイル「Medaka.csv」をデータフレームdに格納済みであるとします。格納していない場合は、解析に用いるcsvファイルのRヘの読み込みの説明に従って格納して下さい。地域の並び順を指定したい場合はその指定も行って下さい。ご自身のデータを用いる場合は、そのファイルをデータフレームdに格納して下さい。

全地域の棒グラフを並べて描く(描き方)
画面9-1
画面9-2

特定の地域の棒グラフを描く(描き方)
画面10-1
画面10-2

3.4.1. 全地域の棒グラフを並べて描く

 全地域の棒グラフを描く(画面9-1, 9-2)方法を説明します。

 まず始めに、作図に用いる値(各地域における産卵数の平均と標準偏差)を計算してデータフレームに格納します。

作図に用いる値の格納

x <- c("Tohoku", "Kanto", "Kansai", "Kyushu")

# 地域名を、データフレームxに格納します。d$Localityでの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではx)はお好みのものでよいです。

# データをRの中で書いてデータフレームに格納

y <- tapply(d$Egg.number, d$Locality, mean)

# データ列d$Localityに入っている地域ごとに、データ列d$Egg.numberに入っている産卵数の平均を計算します。

# meanが、平均を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# 産卵数の平均をデータフレームyに格納します。格納するデータフレームの名称(この例ではy)はお好みのものでよいです。

# tapplyを用いた一括計算

z <- tapply(d$Egg.number, d$Locality, sd)

# データ列d$Localityに入っている地域ごとに、データ列d$Egg.numberに入っている産卵数の標準偏差を計算します。

# sdが、標準偏差を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# 産卵数の標準偏差をデータフレームzに格納します。格納するデータフレームの名称(この例ではz)はお好みのものでよいです。

d2 <- data.frame(x, y, z)

# x, y, zのデータを統合してデータフレームd2に格納します。格納するデータフレームの名称(この例ではd2)はお好みのものでよいです。

# 複数のデータを統合して新しいデータフレームを作成

d2$x <- factor(d2$x, levels =c("Tohoku", "Kanto", "Kansai", "Kyushu"))

# 地域の並び順を指定します。データフレームd2中のデータ列xに地域名が入っています。並べたい順番に地域名を書きます。地域名は文字情報なので、地域名を""で囲みます。この命令を実行しないとアルファベット順に地域名が並びます。

# d2$xの中身を上書きするためにd2$xに再格納します。

# データフレームdに対してデータの並び順を指定ずみであったとしても、データフレームd2に対しても改めて指定する必要があります。dとd2は別のデータフレームだからです。

# この命令を実行しないとアルファベット順に地域が並びます。

# データの並び順の指定

# データフレームd2の中身は以下のようになっています。

 格納したデータを用いて棒グラフを作図します。

全地域の棒グラフを並べて描く

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d2, aes(x = x, y = y)) +

# データフレームd2を指定します。

# x = xとして、地域名が入っているデータ列xをx軸(横軸)に指定します。「x =」のxは小文字です。

# y = yとして、産卵数が入っているデータ列yをy軸(縦軸)に指定します。「y =」のyは小文字です。

# 末尾の+を忘れないで下さい。

# 棒グラフにおける、作図に用いるデータフレームとデータの指定

geom_bar(stat = "identity", color = "black", fill = "white") +

# 描く図として棒グラフを指定します。

# color = で、棒の枠線の色を指定します。黒に指定しています。

# fill =で、棒の内部の色を指定します。白に指定しています。

# stat = "identity"を忘れずに書いて下さい。

# 末尾の+を忘れないで下さい。

# 棒グラフの指定

geom_errorbar(aes(ymin = y - z, ymax = y + z), width = 0.1) +

# 標準偏差を描きます。

# ymin =, ymax =で、標準偏差の縦棒の下端と上端の値を指定します。平均 – 標準偏差(y - z)から平均+標準偏差(y + z)まで縦棒を描きます。

# width =で上下の横棒の幅を指定します。0.1にしています。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_errorbar(aes(ymin = y - z, ymax = y + z), width = 0.1)」とします。

# 標準偏差・標準誤差の描き込み

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "", y = "Egg number") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称をEgg numberにします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 30)) +

# y軸(縦軸)を描く範囲を0から30に指定します。棒グラフの場合は、y軸の最小値を必ず0にします。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.text.x = element_text(size = 18),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)の目盛り(axis.text.x)には地域名(Tohokuなど)が入っています。地域名とy軸(縦軸)の名称(axis.title.y)の文字の大きさを18に、y軸の目盛り(axis.text.y)の文字の大きさを9に指定します。x軸(横軸)の名称(axis.title.x)は書かないので、その文字の大きさも指定しません。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面9-2のように軸の説明を日本語にする場合は、2つの命令文(下記の1つ目と3つ目)を書き替え、1つの命令文(下記の2つ目)を書き足します。他の命令文はそのままでよいです。

labs(x = "", y = "産卵数") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称を産卵数にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_x_discrete(labels = c("東北", "関東", "関西", "九州")) +

# 書き足す命令文です。labs(x = "", y = "産卵数") +の次に書いて下さい。

# x軸(横軸)の各データ群名として東北, 関東, 関西, 九州を書き込みます。d$Localityでの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# x軸にデータ群名を書き込む

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

このページの文頭に戻る

3.4.2. 特定の地域の棒グラフを描く

 特定の地域の棒グラフを描く(画面10-1, 10-2)方法を説明します。1地域だけを描くことはあまりないと思うので、2地域を選ぶ例です。

 まず始めに、データフレームdから作図に用いる値(作図する地域のデータ)を取り出して格納します。

作図に用いる値の格納

d2 <- filter(d, Locality == "Tohoku" | Locality == "Kanto")

# TohokuとKantoのデータを取り出す場合です。

# データフレームdから、データ列Localityに入っている地域名がTohokuまたはKantoのものを取り出しデータフレームd2に格納します。=を2つ繋げ==とすることに注意して下さい。地域名は文字情報なので、地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではd2)はお好みのものでよいです。

# データフレーム中の特定のデータの取り出し

x <- c("Tohoku", "Kanto")

# 地域名を、データフレームxに格納します。d$Localityでの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# 格納するデータフレームの名称(この例ではx)はお好みのものでよいです。

# データをRの中で書いてデータフレームに格納

y <- tapply(d2$Egg.number, d2$Locality, mean)

# データ列d2$Localityに入っている地域ごとに、データ列d2$Egg.numberに入っている産卵数の平均を計算します。

# meanが、平均を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# データフレームはdではなくd2です。

# 計算結果をデータフレームyに格納します。格納するデータフレームの名称(この例ではy)はお好みのものでよいです。

# tapplyを用いた一括計算

z <- tapply(d2$Egg.number, d2$Locality, sd)

# データ列d2$Localityに入っている地域ごとに、データ列d2$Egg.numberに入っている産卵数の標準偏差を計算します。

# sdが、標準偏差を計算する関数です。tapplyの中で用いる場合は、関数名の後に()を付けません。

# データフレームはdではなくd2です。

# 産卵数の標準偏差をデータフレームzに格納します。格納するデータフレームの名称(この例ではz)はお好みのものでよいです。

d3 <- data.frame(x, y, z)

# x, y, zのデータを統合してデータフレームd3に格納します。格納するデータフレームの名称(この例ではd3)はお好みのものでよいです。

# 複数のデータを統合して新しいデータフレームを作成

d3$x <- factor(d3$x, levels =c("Tohoku", "Kanto"))

# 地域の並び順を指定します。データフレームd3中のデータ列xに地域名が入っています。並べたい順番に地域名を書きます。地域名は文字情報なので、地域名を""で囲みます。この命令を実行しないとアルファベット順に地域名が並びます。

# d3$xの中身を上書きするためにd3$xに再格納します。

# データフレームdに対してデータの並び順を指定ずみであったとしても、データフレームd3に対しても改めて指定する必要があります。dとd3は別のデータフレームだからです。

# この命令を実行しないとアルファベット順に地域が並びます。

# データの並び順の指定

# データフレームd3の中身は以下のようになっています。

 作図の仕方は、全地域の棒グラフ描く場合と同じです。ただし、冒頭の命令文のデータフレームはd2ではなくd3です。

特定の地域の棒グラフを描く

# 命令文が続く場合には+で繋げ、最後の命令文の後には+を付けません。

# 必須命令文

ggplot(d3, aes(x = x, y = y)) +

# データフレームd3を指定します。

# x = xとして、地域名が入っているデータ列xをx軸(横軸)に指定します。「x =」のxは小文字です。

# y = yとして、産卵数が入っているデータ列yをy軸(縦軸)に指定します。「y =」のyは小文字です。

# 末尾の+を忘れないで下さい。

# 棒グラフにおける、作図に用いるデータフレームとデータの指定

geom_bar(stat = "identity", color = "black", fill = "white") +

# 描く図として棒グラフを指定します。

# color = で、棒の枠線の色を指定します。黒に指定しています。

# fill =で、棒の内部の色を指定します。白に指定しています。

# stat = "identity"を忘れずに書いて下さい。

# 末尾の+を忘れないで下さい。

# 棒グラフの指定

geom_errorbar(aes(ymin = y - z, ymax = y + z), width = 0.1) +

# 標準偏差を描きます。

# ymin =, ymax =で、標準偏差の縦棒の下端と上端の値を指定します。平均 – 標準偏差(y - z)から平均+標準偏差(y + z)まで縦棒を描きます。

# width =で上下の横棒の幅を指定します。0.1にしています。

# 末尾の+を忘れないで下さい。ただし、以降の命令文を省略する場合は+を付けず、「geom_errorbar(aes(ymin = y - z, ymax = y + z), width = 0.1)」とします。

# 標準偏差・標準誤差の描き込み

# 省略してもよい命令文

# 以降の命令文を省略するとデフォルトで自動で描きます。

labs(x = "", y = "Egg number") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称をEgg numberにします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_y_continuous(limits = c(0, 30)) +

# y軸(縦軸)を描く範囲を0から30に指定します。棒グラフの場合は、y軸の最小値を必ず0にします。

# x軸・y軸の値の最小値・最大値の指定

theme_classic() +

# 図の背景色を白にします。

# 図のデザインの指定

theme(
axis.text.x = element_text(size = 18),
axis.title.y = element_text(size = 18),
axis.text.y = element_text(size = 9)
)

# x軸(横軸)の目盛り(axis.text.x)には地域名(Tohokuなど)が入っています。地域名とy軸(縦軸)の名称(axis.title.y)の文字の大きさを18に、y軸の目盛り(axis.text.y)の文字の大きさを9に指定します。x軸(横軸)の名称(axis.title.x)は書かないので、その文字の大きさも指定しません。

# x軸・y軸の文字の大きさと書き方の指定

軸の説明を日本語にする場合

 画面10-2のように軸の説明を日本語にする場合は、2つの命令文(下記の1つ目と3つ目)を書き替え、1つの命令文(下記の2つ目)を書き足します。他の命令文はそのままでよいです。

labs(x = "", y = "産卵数") +

# x軸(横軸)の名称は書かず、y軸(縦軸)の名称を産卵数にします。名称を""で囲みます。x, yは小文字です。

# x軸・y軸の名称の指定

scale_x_discrete(labels = c("東北", "関東")) +

# 書き足す命令文です。labs(x = "", y = "産卵数") +の次に書いて下さい。

# x軸(横軸)の各データ群名として東北, 関東を書き込みます。データの並び順(あなたが指定した並び順またはアルファベット順)通りに地域名を並べて下さい。並びが異なっていたらデータの対応がおかしくなります。地域名を""で囲みます。

# x軸にデータ群名を書き込む

theme_classic(base_family = "HiraKakuPro-W3") +

# 日本語のフォントとしてHiraKakuPro-W3を指定します。フォントの名称を""で囲みます。

# HiraKakuPro-W3の他にも、HiraKakuPro-W6, Meiryo, MS Gothic, Osakaなど色々なフォントがあります。お好みのフォントを設定して下さい。

# 図のデザインの指定

このページの文頭に戻る