{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"toc_visible": true
},
"kernelspec": {
"name": "ir",
"display_name": "R"
},
"language_info": {
"name": "R"
}
},
"cells": [
{
"cell_type": "markdown",
"source": [
"# 第4回 データ可視化"
],
"metadata": {
"id": "mY8HaWJe8-Uk"
}
},
{
"cell_type": "markdown",
"source": [
"[](https://colab.research.google.com/github/slt666666/biostatistics_text_wed/blob/main/source/_static/colab_notebook/chapter4.ipynb)"
],
"metadata": {
"id": "hzBgxdO-ZWMq"
}
},
{
"cell_type": "markdown",
"source": [
"## はじめに\n",
"\n",
"前回の記述統計学では、データを手にした際に、どの様にデータの特徴を捉えるかを扱いました。\n",
"\n",
"その際に、ヒストグラムや散布図、分割表等、視覚的にデータを捉える重要性を確認しました。\n",
"\n",
"今回は統計学自体からは少し離れたトピックになりますが、データを可視化する方法について扱います。\n",
"\n",
"前回の章でも、Rに元からある関数`plot`や`hist`、`boxplot`を用いることで、簡単なグラフは作成出来ました。\n",
"\n",
"しかし、第2章のRについての講義でも触れた様に、他者の作成したパッケージ(関数をまとめたもの)を利用することで、より綺麗なグラフを簡単に作成出来る関数を使用することが出来るようになります。\n",
"\n",
"その代表例が`ggplot2`というパッケージになります。\n",
"\n",
"
\n",
"\n",
"[ggplot2の公式ページ](https://ggplot2.tidyverse.org/)\n",
"\n",
"ggplot2はHadley Wickhamによって開発されたデータ可視化のためのパッケージで、Rを使用する殆どのユーザーがグラフ描写に使用しているパッケージになります。\n",
"\n",
"(Hadley WickhamはRstudioのチーフサイエンティスト・統計学者で、`tydyverse`等のパッケージを開発し、Rの普及に多大なる貢献をしています。)\n",
"\n",
"研究室に配属された後、グラフ等を作成する機会は非常に増えるかと思いますが、その時にggplot2等を用いてグラフを作成出来る様になっておくと非常に役立ちます。\n",
"\n",
"また、以降の講義でも一部のグラフの作成には`ggplot2`を使用する予定です。\n",
"\n",
"そこで、本章では`ggplot2`の基本的な使い方を扱います。\n"
],
"metadata": {
"id": "N8IxTbHm9CE2"
}
},
{
"cell_type": "markdown",
"source": [
"## ggplot2のインストール\n",
"\n",
"ggplot2を使うにはggplot2をRへインストールする必要があります。\n",
"\n",
"ただ、Google Colaboratoryでは、代表的なパッケージは既にインストールされているので今回はインストールする必要はありません。\n",
"\n",
"もし自分のPCでRを動かして`ggplot2`を使用する場合には`install.packages`関数でインストールする必要があります。\n",
"\n",
"`install.packages(\"インストールしたいパッケージ名\")`"
],
"metadata": {
"id": "AZZIYxA07nQo"
}
},
{
"cell_type": "code",
"source": [
"# パッケージのインストール\n",
"install.packages(\"ggplot2\")"
],
"metadata": {
"id": "V3Nsddw080q5",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "edb030ac-29da-46c7-fc88-71351cb4d699"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stderr",
"text": [
"Installing package into ‘/usr/local/lib/R/site-library’\n",
"(as ‘lib’ is unspecified)\n",
"\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## ggplot2パッケージの読み込み\n",
"\n",
"Rの基本の所でも扱いましたが、パッケージはインストールしただけでは使用できるようにはなりません。\n",
"\n",
"`library`関数で必要なパッケージを明示的に読み込ませる必要があります。\n",
"\n",
"`library(パッケージ名)`\n",
"\n",
"パッケージの読み込みはRを起動する度に行う必要があります。"
],
"metadata": {
"id": "FJfLzP-o9zZA"
}
},
{
"cell_type": "code",
"source": [
"# パッケージの読み込み\n",
"library(ggplot2)"
],
"metadata": {
"id": "PSbIvy9a9Bd0"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## ggplot2による作図の基本\n",
"\n",
"ggplot2を使用することで、散布図や棒グラフ、箱ひげ図等様々な図を作成できますが、\n",
"\n",
"その使用方法は概ね下記の様な流れになります。\n",
"\n",
"1. `ggplot`関数にデータを渡し、どのデータを可視化するか指定する。例) x軸にどの値を使用するか、等。\n",
"2. `geom_xxx`関数(`geom_point`や`geom_histogram`等)で、自分が作りたい図(散布図なのかヒストグラムなのか…etc)の層 (layer) を加える。\n",
"3. 軸ラベル (labs)や凡例 (legend)等、細かい設定を追加する。\n",
"4. 図を表示・保存する。\n",
"\n",
"ここからそれぞれについて見ていきます。"
],
"metadata": {
"id": "pFNQWE6r_Jk0"
}
},
{
"cell_type": "markdown",
"source": [
"まずは前回使用したデータを用いて、草丈(Height)と葉身長(Leaf_length)の散布図を描くことを目標に進めていきます。\n",
"\n",
"ggplot2では`plot`関数とは異なり、`データフレーム`の形式でデータを入力する形になります。\n",
"\n",
"まずは`read.csv`関数でCSVファイルのデータをデータフレームとして読み込んでおきます。\n",
"\n",
"`read.csv(\"ファイルのURL/パス\")`"
],
"metadata": {
"id": "3PggE5c1WTqy"
}
},
{
"cell_type": "code",
"source": [
"# サンプルデータをdfに読み込み\n",
"df <- read.csv(\"https://raw.githubusercontent.com/slt666666/biostatistics_text_wed/refs/heads/main/source/_static/data/chapter3_data.csv\")\n",
"head(df)"
],
"metadata": {
"id": "7vJTYRjZ76ID",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 286
},
"outputId": "3a4dca2a-b24b-41ba-a5f0-e383ed2671b8"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"
| X | Flower | Resistance | Age | Height | Leaf_length | Leaf_width | |
|---|---|---|---|---|---|---|---|
| <chr> | <chr> | <chr> | <int> | <dbl> | <dbl> | <dbl> | |
| 1 | サンプル1 | Yellow | Normal | 1 | 65.78827 | 7.834566 | 1.2310844 |
| 2 | サンプル2 | Purple | Weak | 1 | 26.70546 | 4.654080 | 0.6596468 |
| 3 | サンプル3 | Blue | Very strong | 18 | 31.67394 | 6.657642 | 0.5777713 |
| 4 | サンプル4 | Blue | Very strong | 2 | 41.59529 | 4.530526 | 1.0155126 |
| 5 | サンプル5 | Blue | Very strong | 4 | 40.18388 | 6.621776 | 0.5938072 |
| 6 | サンプル6 | Blue | Very strong | 4 | 28.85123 | 6.452588 | 0.3979530 |