{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "intro",
   "metadata": {},
   "source": [
    "# 03　グラフで変化を見つける\n",
    "\n",
    "FUJIMOTO LAB 深層学習コース。Web教材の図と説明を読んでから実行してください。Pythonの計算はColabの実行環境で行います。\n",
    "\n",
    "**この回の目標**：軸と単位を付けた線グラフを読み取れる\n",
    "\n",
    "このノートブックは小さな合成データを使用し、元の教材の固定Driveパスや動画を必要としません。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "predict",
   "metadata": {},
   "source": [
    "## 1　まず予想する\n",
    "\n",
    "コードを実行する前に、表示される値や形を予想してください。"
   ]
  },
  {
   "cell_type": "code",
   "id": "demo-one",
   "metadata": {},
   "source": [
    "import matplotlib.pyplot as plt\n",
    "hours = [0,1,2,3]\n",
    "temp = [18,20,19,23]\n",
    "plt.plot(hours,temp,marker='o')\n",
    "plt.xlabel('Hour'); plt.ylabel('Temperature (C)')\n",
    "plt.grid(True); plt.show()"
   ],
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "id": "explain-one",
   "metadata": {},
   "source": [
    "**確かめ方**：点の順序が時間の順番なので、途中で一度下がったことが見えます。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "part-two",
   "metadata": {},
   "source": [
    "## 2　見た目で誤解させない\n",
    "\n",
    "縦軸を極端に切り取ると小さな変化が大きく見えます。何を比較したいかを考えて範囲を決めましょう。"
   ]
  },
  {
   "cell_type": "code",
   "id": "demo-two",
   "metadata": {},
   "source": [
    "plt.plot(hours,temp,marker='o')\n",
    "plt.ylim(0,30); plt.xlabel('Hour'); plt.ylabel('Temperature (C)')\n",
    "plt.show()"
   ],
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "id": "explain-two",
   "metadata": {},
   "source": [
    "**結果を読む**：同じ値でも軸の範囲で印象が変わります。図を見る人に範囲を明示しましょう。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "experiment",
   "metadata": {},
   "source": [
    "## 3　値を変えて比べる\n",
    "\n",
    "次のセルでは、表示される値や条件を変えて、何が結果を決めるかを確かめます。長くかかる実験は、少数の合成データで行います。"
   ]
  },
  {
   "cell_type": "code",
   "id": "lab",
   "metadata": {},
   "source": [
    "# 点も重ねて、測定値の位置を確認\n",
    "plt.plot(hours,temp,color='#1d5fb7')\n",
    "plt.scatter(hours,temp,color='#e5484d',s=70)\n",
    "plt.xlabel('Hour'); plt.ylabel('Temperature (C)')\n",
    "plt.title('Four measurements'); plt.grid(True); plt.show()\n"
   ],
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "id": "extra-guide-1",
   "metadata": {},
   "source": [
    "## 追加実習 1　軸の範囲で印象は変わる？\n",
    "\n",
    "同じデータを二つの縦軸で表示します。どちらかだけを見たら変化をどう感じるでしょう。\n",
    "\n",
    "**実行前に予想**：何が変わり、何が変わらないでしょうか。"
   ]
  },
  {
   "cell_type": "code",
   "id": "extra-code-1",
   "metadata": {},
   "source": [
    "fig, axes = plt.subplots(1, 2, figsize=(9, 3))\n",
    "for ax, bounds in zip(axes, [(0, 30), (17, 24)]):\n",
    "    ax.plot(hours, temp, marker='o')\n",
    "    ax.set_ylim(*bounds)\n",
    "    ax.set_xlabel('Hour')\n",
    "    ax.set_ylabel('Temperature (C)')\n",
    "    ax.grid(True)\n",
    "fig.tight_layout()\n",
    "plt.show()\n"
   ],
   "execution_count": null,
   "outputs": []
  },
  {
   "cell_type": "markdown",
   "id": "extra-reflect-1",
   "metadata": {},
   "source": [
    "**確認**：予想と違った点を一つ書き、値を一つ変えて再実行してください。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "reflection",
   "metadata": {},
   "source": [
    "## 自分の言葉で答えよう\n",
    "\n",
    "時間による気温の変化を見るなら？\n",
    "\n",
    "- まず予想を書く\n",
    "- コードのどの行が答えを決めるか指す\n",
    "- 条件や値を1つ変えて、予想と実行結果を比べる\n",
    "\n",
    "**ヒント**：時間の順番が分かるようにすると変化を追えます。"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "name": "03-plots.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
