Skip to content

Instantly share code, notes, and snippets.

@Shinichi-Nakagawa
Last active September 30, 2023 08:20
Show Gist options
  • Save Shinichi-Nakagawa/3ca01932532ba41ceaef94bd722107b9 to your computer and use it in GitHub Desktop.
Save Shinichi-Nakagawa/3ca01932532ba41ceaef94bd722107b9 to your computer and use it in GitHub Desktop.
npb2023_teamstats.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyNH0xadmgV+37TGJFn4SaFZ",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/Shinichi-Nakagawa/3ca01932532ba41ceaef94bd722107b9/npb2023_teamstats.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"# プロ野球チーム成績からチームごとの指標を計算・可視化\n",
"\n",
"- チーム打撃・チーム投球成績をスクレイピング\n",
"- データ型を指定してCSVとして保存\n",
"- Plotlyで可視化"
],
"metadata": {
"id": "4a_TuwVg425x"
}
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "JKzLztF94NH4",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "a13a1762-a9bd-45e4-853b-f752c6747f0a"
},
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"datetime.datetime(2023, 9, 30, 16, 48, 1, 665959, tzinfo=zoneinfo.ZoneInfo(key='Asia/Tokyo'))"
]
},
"metadata": {},
"execution_count": 1
}
],
"source": [
"import pandas as pd\n",
"pd.options.display.max_rows = 12\n",
"pd.options.display.max_columns = 50\n",
"from datetime import datetime\n",
"from zoneinfo import ZoneInfo\n",
"# JSTなので注意\n",
"now = datetime.now(ZoneInfo(\"Asia/Tokyo\"))\n",
"now"
]
},
{
"cell_type": "code",
"source": [
"!pip install requests-html"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "JP4e1y8S4SEW",
"outputId": "c0754edf-3d1e-4788-8ad5-ed4bdff7b302"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Collecting requests-html\n",
" Downloading requests_html-0.10.0-py3-none-any.whl (13 kB)\n",
"Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from requests-html) (2.31.0)\n",
"Collecting pyquery (from requests-html)\n",
" Downloading pyquery-2.0.0-py3-none-any.whl (22 kB)\n",
"Collecting fake-useragent (from requests-html)\n",
" Downloading fake_useragent-1.2.1-py3-none-any.whl (14 kB)\n",
"Collecting parse (from requests-html)\n",
" Downloading parse-1.19.1-py2.py3-none-any.whl (18 kB)\n",
"Collecting bs4 (from requests-html)\n",
" Downloading bs4-0.0.1.tar.gz (1.1 kB)\n",
" Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
"Collecting w3lib (from requests-html)\n",
" Downloading w3lib-2.1.2-py3-none-any.whl (21 kB)\n",
"Collecting pyppeteer>=0.0.14 (from requests-html)\n",
" Downloading pyppeteer-1.0.2-py3-none-any.whl (83 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m83.4/83.4 kB\u001b[0m \u001b[31m5.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: appdirs<2.0.0,>=1.4.3 in /usr/local/lib/python3.10/dist-packages (from pyppeteer>=0.0.14->requests-html) (1.4.4)\n",
"Requirement already satisfied: certifi>=2021 in /usr/local/lib/python3.10/dist-packages (from pyppeteer>=0.0.14->requests-html) (2023.7.22)\n",
"Requirement already satisfied: importlib-metadata>=1.4 in /usr/local/lib/python3.10/dist-packages (from pyppeteer>=0.0.14->requests-html) (6.8.0)\n",
"Collecting pyee<9.0.0,>=8.1.0 (from pyppeteer>=0.0.14->requests-html)\n",
" Downloading pyee-8.2.2-py2.py3-none-any.whl (12 kB)\n",
"Requirement already satisfied: tqdm<5.0.0,>=4.42.1 in /usr/local/lib/python3.10/dist-packages (from pyppeteer>=0.0.14->requests-html) (4.66.1)\n",
"Collecting urllib3<2.0.0,>=1.25.8 (from pyppeteer>=0.0.14->requests-html)\n",
" Downloading urllib3-1.26.16-py2.py3-none-any.whl (143 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m143.1/143.1 kB\u001b[0m \u001b[31m6.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hCollecting websockets<11.0,>=10.0 (from pyppeteer>=0.0.14->requests-html)\n",
" Downloading websockets-10.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (106 kB)\n",
"\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m106.8/106.8 kB\u001b[0m \u001b[31m6.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
"\u001b[?25hRequirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from bs4->requests-html) (4.11.2)\n",
"Requirement already satisfied: lxml>=2.1 in /usr/local/lib/python3.10/dist-packages (from pyquery->requests-html) (4.9.3)\n",
"Collecting cssselect>=1.2.0 (from pyquery->requests-html)\n",
" Downloading cssselect-1.2.0-py2.py3-none-any.whl (18 kB)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->requests-html) (3.2.0)\n",
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->requests-html) (3.4)\n",
"Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=1.4->pyppeteer>=0.0.14->requests-html) (3.16.2)\n",
"Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->bs4->requests-html) (2.5)\n",
"Building wheels for collected packages: bs4\n",
" Building wheel for bs4 (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for bs4: filename=bs4-0.0.1-py3-none-any.whl size=1256 sha256=a57aa6cbc305fbea83f24a8f493c7c38f67e7bb792776f245a68cd63e6526605\n",
" Stored in directory: /root/.cache/pip/wheels/25/42/45/b773edc52acb16cd2db4cf1a0b47117e2f69bb4eb300ed0e70\n",
"Successfully built bs4\n",
"Installing collected packages: pyee, parse, fake-useragent, websockets, w3lib, urllib3, cssselect, pyquery, pyppeteer, bs4, requests-html\n",
" Attempting uninstall: urllib3\n",
" Found existing installation: urllib3 2.0.4\n",
" Uninstalling urllib3-2.0.4:\n",
" Successfully uninstalled urllib3-2.0.4\n",
"Successfully installed bs4-0.0.1 cssselect-1.2.0 fake-useragent-1.2.1 parse-1.19.1 pyee-8.2.2 pyppeteer-1.0.2 pyquery-2.0.0 requests-html-0.10.0 urllib3-1.26.16 w3lib-2.1.2 websockets-10.4\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"!python --version"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "fc3LAHmr4Z6p",
"outputId": "e098d867-7526-412a-d0b9-e8c20ddd6c39"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Python 3.10.12\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"## チーム成績の取得とデータ整形"
],
"metadata": {
"id": "u_pMYz7u5V2w"
}
},
{
"cell_type": "code",
"source": [
"# 取得対象のチーム成績\n",
"\n",
"TEAM_STATS_CENTRAL_PITCHING = \"https://npb.jp/bis/2023/stats/tmp_c.html\"\n",
"TEAM_STATS_CENTRAL_BATTING = \"https://npb.jp/bis/2023/stats/tmb_c.html\""
],
"metadata": {
"id": "7VfVrvE04de_"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# ひとまず取得\n",
"from requests_html import HTMLSession\n",
"session = HTMLSession()"
],
"metadata": {
"id": "j1bFHn2o5FiU"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# 投手&打者成績を取得する\n",
"from typing import Dict, Union, List\n",
"\n",
"COLUMNS_PITCING = ['team', 'era', 'g', 'win', 'lose', 'sv', 'hld', 'hldp', 'cg', 'sho', 'no_walks', 'win_p', 'batter_faces', 'ip', 'ip_2', 'h', 'hr', 'bb', 'ibb', 'hbp', 'so', 'wp', 'balk', 'r', 'er']\n",
"COLUMNS_BATTING = ['team', 'ba', 'g', 'pa', 'ab', 'r', 'h', '_2b', '_3b', 'hr', 'tb', 'rbi', 'sb', 'cs', 'sh', 'sf', 'bb', 'ibb', 'hbp', 'so', 'dp', 'slg', 'obp']\n",
"\n",
"def stats(url: str, columns: List[str], session: HTMLSession) -> Dict[str, Union[str, int, float]]:\n",
" r = session.get(url)\n",
" rows: Dict[str, Union[str, int, float]] = {}\n",
" table = r.html.xpath(\"/html/body/div/div/div/div[3]/table\", first=True)\n",
" for i, tr in enumerate(table.find(\"tr\")):\n",
" # header is skip\n",
" if i == 0:\n",
" continue\n",
" values = {}\n",
" for ii, td in enumerate(tr.find('td')):\n",
" if ii == 0:\n",
" _a = td.find('a', first=True)\n",
" values[columns[ii]] = str(_a.text).replace('\\u3000', '')\n",
" else:\n",
" values[columns[ii]] = td.text\n",
" rows[values['team']] = values\n",
" return rows\n"
],
"metadata": {
"id": "450Uyp_076n_"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"stats_p = stats(TEAM_STATS_CENTRAL_PITCHING, COLUMNS_PITCING, session)\n",
"stats_b = stats(TEAM_STATS_CENTRAL_BATTING, COLUMNS_BATTING, session)"
],
"metadata": {
"id": "OykoFv6rBXnz"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [],
"metadata": {
"id": "JbH28iGdJ2Cr"
}
},
{
"cell_type": "code",
"source": [
"# pandasに読み込んで整形する\n",
"# 投手成績はひと工夫入れる\n",
"_stats_p = {}\n",
"for k, v in stats_p.items():\n",
" v['ip'] = v['ip'] + v['ip_2']\n",
" del v['ip_2']\n",
" _stats_p[k] = v\n",
"\n",
"df_stats_p = pd.DataFrame(_stats_p.values()).astype({'era': float, 'g': int, 'win': int, 'lose': int, 'sv': int, 'hld': int, 'hldp': int, 'cg': int, 'sho': int, 'no_walks': int, 'win_p': float, 'batter_faces': int, 'ip': float, 'h': int, 'hr': int, 'bb': int, 'ibb': int, 'hbp': int, 'so': int, 'wp': int, 'balk': int, 'r': int, 'er': int})"
],
"metadata": {
"id": "CQC6u3ngF88I"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df_stats_p"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"id": "irC7spIMGsHM",
"outputId": "22e8e103-c852-4416-b3ef-e1f273a53b54"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" team era g win lose sv hld hldp cg sho no_walks win_p \\\n",
"0 阪神 2.63 140 84 51 44 126 147 10 18 24 0.622 \n",
"1 中日 3.09 140 55 80 36 142 163 4 7 9 0.407 \n",
"2 DeNA 3.20 140 72 65 41 118 139 8 14 16 0.526 \n",
"3 広島 3.21 141 73 64 45 122 148 9 14 11 0.533 \n",
"4 巨人 3.47 139 68 69 29 118 144 7 16 8 0.496 \n",
"5 ヤクルト 3.69 140 56 81 33 130 145 3 15 9 0.409 \n",
"\n",
" batter_faces ip h hr bb ibb hbp so wp balk r er \n",
"0 5104 1262.1 1075 85 310 17 41 988 22 2 412 369 \n",
"1 5270 1261.1 1097 76 435 18 50 1045 32 0 490 433 \n",
"2 5265 1263.1 1187 118 357 28 42 1143 28 0 493 449 \n",
"3 5282 1257.0 1173 108 392 28 42 955 31 3 501 449 \n",
"4 5164 1240.1 1097 128 396 17 64 1041 27 6 504 478 \n",
"5 5231 1241.2 1191 139 376 41 62 935 33 1 558 509 "
],
"text/html": [
"\n",
" <div id=\"df-5356890f-faa9-445a-ba5a-17258490a815\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>era</th>\n",
" <th>g</th>\n",
" <th>win</th>\n",
" <th>lose</th>\n",
" <th>sv</th>\n",
" <th>hld</th>\n",
" <th>hldp</th>\n",
" <th>cg</th>\n",
" <th>sho</th>\n",
" <th>no_walks</th>\n",
" <th>win_p</th>\n",
" <th>batter_faces</th>\n",
" <th>ip</th>\n",
" <th>h</th>\n",
" <th>hr</th>\n",
" <th>bb</th>\n",
" <th>ibb</th>\n",
" <th>hbp</th>\n",
" <th>so</th>\n",
" <th>wp</th>\n",
" <th>balk</th>\n",
" <th>r</th>\n",
" <th>er</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>阪神</td>\n",
" <td>2.63</td>\n",
" <td>140</td>\n",
" <td>84</td>\n",
" <td>51</td>\n",
" <td>44</td>\n",
" <td>126</td>\n",
" <td>147</td>\n",
" <td>10</td>\n",
" <td>18</td>\n",
" <td>24</td>\n",
" <td>0.622</td>\n",
" <td>5104</td>\n",
" <td>1262.1</td>\n",
" <td>1075</td>\n",
" <td>85</td>\n",
" <td>310</td>\n",
" <td>17</td>\n",
" <td>41</td>\n",
" <td>988</td>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>412</td>\n",
" <td>369</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>中日</td>\n",
" <td>3.09</td>\n",
" <td>140</td>\n",
" <td>55</td>\n",
" <td>80</td>\n",
" <td>36</td>\n",
" <td>142</td>\n",
" <td>163</td>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>0.407</td>\n",
" <td>5270</td>\n",
" <td>1261.1</td>\n",
" <td>1097</td>\n",
" <td>76</td>\n",
" <td>435</td>\n",
" <td>18</td>\n",
" <td>50</td>\n",
" <td>1045</td>\n",
" <td>32</td>\n",
" <td>0</td>\n",
" <td>490</td>\n",
" <td>433</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>DeNA</td>\n",
" <td>3.20</td>\n",
" <td>140</td>\n",
" <td>72</td>\n",
" <td>65</td>\n",
" <td>41</td>\n",
" <td>118</td>\n",
" <td>139</td>\n",
" <td>8</td>\n",
" <td>14</td>\n",
" <td>16</td>\n",
" <td>0.526</td>\n",
" <td>5265</td>\n",
" <td>1263.1</td>\n",
" <td>1187</td>\n",
" <td>118</td>\n",
" <td>357</td>\n",
" <td>28</td>\n",
" <td>42</td>\n",
" <td>1143</td>\n",
" <td>28</td>\n",
" <td>0</td>\n",
" <td>493</td>\n",
" <td>449</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>広島</td>\n",
" <td>3.21</td>\n",
" <td>141</td>\n",
" <td>73</td>\n",
" <td>64</td>\n",
" <td>45</td>\n",
" <td>122</td>\n",
" <td>148</td>\n",
" <td>9</td>\n",
" <td>14</td>\n",
" <td>11</td>\n",
" <td>0.533</td>\n",
" <td>5282</td>\n",
" <td>1257.0</td>\n",
" <td>1173</td>\n",
" <td>108</td>\n",
" <td>392</td>\n",
" <td>28</td>\n",
" <td>42</td>\n",
" <td>955</td>\n",
" <td>31</td>\n",
" <td>3</td>\n",
" <td>501</td>\n",
" <td>449</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>巨人</td>\n",
" <td>3.47</td>\n",
" <td>139</td>\n",
" <td>68</td>\n",
" <td>69</td>\n",
" <td>29</td>\n",
" <td>118</td>\n",
" <td>144</td>\n",
" <td>7</td>\n",
" <td>16</td>\n",
" <td>8</td>\n",
" <td>0.496</td>\n",
" <td>5164</td>\n",
" <td>1240.1</td>\n",
" <td>1097</td>\n",
" <td>128</td>\n",
" <td>396</td>\n",
" <td>17</td>\n",
" <td>64</td>\n",
" <td>1041</td>\n",
" <td>27</td>\n",
" <td>6</td>\n",
" <td>504</td>\n",
" <td>478</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ヤクルト</td>\n",
" <td>3.69</td>\n",
" <td>140</td>\n",
" <td>56</td>\n",
" <td>81</td>\n",
" <td>33</td>\n",
" <td>130</td>\n",
" <td>145</td>\n",
" <td>3</td>\n",
" <td>15</td>\n",
" <td>9</td>\n",
" <td>0.409</td>\n",
" <td>5231</td>\n",
" <td>1241.2</td>\n",
" <td>1191</td>\n",
" <td>139</td>\n",
" <td>376</td>\n",
" <td>41</td>\n",
" <td>62</td>\n",
" <td>935</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>558</td>\n",
" <td>509</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5356890f-faa9-445a-ba5a-17258490a815')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5356890f-faa9-445a-ba5a-17258490a815 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5356890f-faa9-445a-ba5a-17258490a815');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-911f11c2-3166-4bec-8790-924609465726\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-911f11c2-3166-4bec-8790-924609465726')\"\n",
" title=\"Suggest charts.\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-911f11c2-3166-4bec-8790-924609465726 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 9
}
]
},
{
"cell_type": "code",
"source": [
"df_stats_b = pd.DataFrame(stats_b.values()).astype({'ba': float, 'g': int, 'pa': int, 'ab': int, 'r': int, 'h': int, '_2b': int, '_3b': int, 'hr': int, 'tb': int, 'rbi': int, 'sb': int, 'cs': int, 'sh': int, 'sf': int, 'bb': int, 'ibb': int, 'hbp': int, 'so': int, 'dp': int, 'slg': float, 'obp': float})"
],
"metadata": {
"id": "pOCM8mnuGxTk"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df_stats_b"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"id": "hmnR7UhQHGJ8",
"outputId": "3241ae24-1a79-431d-f16e-3bcb340a46a0"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" team ba g pa ab r h _2b _3b hr tb rbi sb cs \\\n",
"0 巨人 0.253 139 5213 4700 517 1188 198 14 163 1903 505 47 29 \n",
"1 阪神 0.247 140 5369 4679 544 1158 177 34 81 1646 523 78 27 \n",
"2 DeNA 0.247 140 5225 4686 512 1156 227 18 104 1731 495 32 25 \n",
"3 広島 0.246 141 5169 4664 486 1146 196 17 94 1658 469 77 50 \n",
"4 ヤクルト 0.239 140 5247 4609 527 1103 208 11 122 1699 502 61 20 \n",
"5 中日 0.236 140 5156 4703 387 1108 185 19 70 1541 368 35 24 \n",
"\n",
" sh sf bb ibb hbp so dp slg obp \n",
"0 92 31 353 38 37 1087 91 0.405 0.308 \n",
"1 104 46 485 34 55 1144 89 0.352 0.323 \n",
"2 101 31 352 22 55 832 100 0.369 0.305 \n",
"3 93 20 345 25 47 1017 114 0.355 0.303 \n",
"4 113 33 442 23 50 1075 111 0.369 0.311 \n",
"5 90 22 303 18 38 1007 93 0.328 0.286 "
],
"text/html": [
"\n",
" <div id=\"df-9290c83c-f173-45f9-b879-82550cbc5d8d\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>ba</th>\n",
" <th>g</th>\n",
" <th>pa</th>\n",
" <th>ab</th>\n",
" <th>r</th>\n",
" <th>h</th>\n",
" <th>_2b</th>\n",
" <th>_3b</th>\n",
" <th>hr</th>\n",
" <th>tb</th>\n",
" <th>rbi</th>\n",
" <th>sb</th>\n",
" <th>cs</th>\n",
" <th>sh</th>\n",
" <th>sf</th>\n",
" <th>bb</th>\n",
" <th>ibb</th>\n",
" <th>hbp</th>\n",
" <th>so</th>\n",
" <th>dp</th>\n",
" <th>slg</th>\n",
" <th>obp</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>巨人</td>\n",
" <td>0.253</td>\n",
" <td>139</td>\n",
" <td>5213</td>\n",
" <td>4700</td>\n",
" <td>517</td>\n",
" <td>1188</td>\n",
" <td>198</td>\n",
" <td>14</td>\n",
" <td>163</td>\n",
" <td>1903</td>\n",
" <td>505</td>\n",
" <td>47</td>\n",
" <td>29</td>\n",
" <td>92</td>\n",
" <td>31</td>\n",
" <td>353</td>\n",
" <td>38</td>\n",
" <td>37</td>\n",
" <td>1087</td>\n",
" <td>91</td>\n",
" <td>0.405</td>\n",
" <td>0.308</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>阪神</td>\n",
" <td>0.247</td>\n",
" <td>140</td>\n",
" <td>5369</td>\n",
" <td>4679</td>\n",
" <td>544</td>\n",
" <td>1158</td>\n",
" <td>177</td>\n",
" <td>34</td>\n",
" <td>81</td>\n",
" <td>1646</td>\n",
" <td>523</td>\n",
" <td>78</td>\n",
" <td>27</td>\n",
" <td>104</td>\n",
" <td>46</td>\n",
" <td>485</td>\n",
" <td>34</td>\n",
" <td>55</td>\n",
" <td>1144</td>\n",
" <td>89</td>\n",
" <td>0.352</td>\n",
" <td>0.323</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>DeNA</td>\n",
" <td>0.247</td>\n",
" <td>140</td>\n",
" <td>5225</td>\n",
" <td>4686</td>\n",
" <td>512</td>\n",
" <td>1156</td>\n",
" <td>227</td>\n",
" <td>18</td>\n",
" <td>104</td>\n",
" <td>1731</td>\n",
" <td>495</td>\n",
" <td>32</td>\n",
" <td>25</td>\n",
" <td>101</td>\n",
" <td>31</td>\n",
" <td>352</td>\n",
" <td>22</td>\n",
" <td>55</td>\n",
" <td>832</td>\n",
" <td>100</td>\n",
" <td>0.369</td>\n",
" <td>0.305</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>広島</td>\n",
" <td>0.246</td>\n",
" <td>141</td>\n",
" <td>5169</td>\n",
" <td>4664</td>\n",
" <td>486</td>\n",
" <td>1146</td>\n",
" <td>196</td>\n",
" <td>17</td>\n",
" <td>94</td>\n",
" <td>1658</td>\n",
" <td>469</td>\n",
" <td>77</td>\n",
" <td>50</td>\n",
" <td>93</td>\n",
" <td>20</td>\n",
" <td>345</td>\n",
" <td>25</td>\n",
" <td>47</td>\n",
" <td>1017</td>\n",
" <td>114</td>\n",
" <td>0.355</td>\n",
" <td>0.303</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ヤクルト</td>\n",
" <td>0.239</td>\n",
" <td>140</td>\n",
" <td>5247</td>\n",
" <td>4609</td>\n",
" <td>527</td>\n",
" <td>1103</td>\n",
" <td>208</td>\n",
" <td>11</td>\n",
" <td>122</td>\n",
" <td>1699</td>\n",
" <td>502</td>\n",
" <td>61</td>\n",
" <td>20</td>\n",
" <td>113</td>\n",
" <td>33</td>\n",
" <td>442</td>\n",
" <td>23</td>\n",
" <td>50</td>\n",
" <td>1075</td>\n",
" <td>111</td>\n",
" <td>0.369</td>\n",
" <td>0.311</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>中日</td>\n",
" <td>0.236</td>\n",
" <td>140</td>\n",
" <td>5156</td>\n",
" <td>4703</td>\n",
" <td>387</td>\n",
" <td>1108</td>\n",
" <td>185</td>\n",
" <td>19</td>\n",
" <td>70</td>\n",
" <td>1541</td>\n",
" <td>368</td>\n",
" <td>35</td>\n",
" <td>24</td>\n",
" <td>90</td>\n",
" <td>22</td>\n",
" <td>303</td>\n",
" <td>18</td>\n",
" <td>38</td>\n",
" <td>1007</td>\n",
" <td>93</td>\n",
" <td>0.328</td>\n",
" <td>0.286</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-9290c83c-f173-45f9-b879-82550cbc5d8d')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-9290c83c-f173-45f9-b879-82550cbc5d8d button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-9290c83c-f173-45f9-b879-82550cbc5d8d');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-ac6abeb4-e12d-42fc-894a-48e8eae895f0\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-ac6abeb4-e12d-42fc-894a-48e8eae895f0')\"\n",
" title=\"Suggest charts.\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-ac6abeb4-e12d-42fc-894a-48e8eae895f0 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 11
}
]
},
{
"cell_type": "code",
"source": [
"# 必要な指標を作り込む(打撃)\n",
"df_stats_b['ops'] = round(df_stats_b['obp'] + df_stats_b['slg'], 3)\n",
"df_stats_b['ab_k'] = round(df_stats_b['ab'] / df_stats_b['so'], 2)\n",
"df_stats_b['pa_k'] = round(df_stats_b['pa'] / df_stats_b['so'], 2)\n",
"df_stats_b['ab_bb'] = round(df_stats_b['ab'] / df_stats_b['bb'], 2)\n",
"df_stats_b['pa_bb'] = round(df_stats_b['pa'] / df_stats_b['bb'], 2)\n",
"df_stats_b['bb_per_so'] = round((df_stats_b['bb'] + df_stats_b['hbp'] + df_stats_b['ibb']) / df_stats_b['so'], 3)"
],
"metadata": {
"id": "N-Wu8VzbKL59"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"df_stats_b"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"id": "9IolahbJMQdh",
"outputId": "07ead18b-9abf-4f08-9e70-4ed1be476d87"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" team ba g pa ab r h _2b _3b hr tb rbi sb cs \\\n",
"0 巨人 0.253 139 5213 4700 517 1188 198 14 163 1903 505 47 29 \n",
"1 阪神 0.247 140 5369 4679 544 1158 177 34 81 1646 523 78 27 \n",
"2 DeNA 0.247 140 5225 4686 512 1156 227 18 104 1731 495 32 25 \n",
"3 広島 0.246 141 5169 4664 486 1146 196 17 94 1658 469 77 50 \n",
"4 ヤクルト 0.239 140 5247 4609 527 1103 208 11 122 1699 502 61 20 \n",
"5 中日 0.236 140 5156 4703 387 1108 185 19 70 1541 368 35 24 \n",
"\n",
" sh sf bb ibb hbp so dp slg obp ops ab_k pa_k ab_bb \\\n",
"0 92 31 353 38 37 1087 91 0.405 0.308 0.713 4.32 4.80 13.31 \n",
"1 104 46 485 34 55 1144 89 0.352 0.323 0.675 4.09 4.69 9.65 \n",
"2 101 31 352 22 55 832 100 0.369 0.305 0.674 5.63 6.28 13.31 \n",
"3 93 20 345 25 47 1017 114 0.355 0.303 0.658 4.59 5.08 13.52 \n",
"4 113 33 442 23 50 1075 111 0.369 0.311 0.680 4.29 4.88 10.43 \n",
"5 90 22 303 18 38 1007 93 0.328 0.286 0.614 4.67 5.12 15.52 \n",
"\n",
" pa_bb bb_per_so \n",
"0 14.77 0.394 \n",
"1 11.07 0.502 \n",
"2 14.84 0.516 \n",
"3 14.98 0.410 \n",
"4 11.87 0.479 \n",
"5 17.02 0.357 "
],
"text/html": [
"\n",
" <div id=\"df-a65410f4-ad8b-4f13-904e-b3c1b2c7f5bc\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>ba</th>\n",
" <th>g</th>\n",
" <th>pa</th>\n",
" <th>ab</th>\n",
" <th>r</th>\n",
" <th>h</th>\n",
" <th>_2b</th>\n",
" <th>_3b</th>\n",
" <th>hr</th>\n",
" <th>tb</th>\n",
" <th>rbi</th>\n",
" <th>sb</th>\n",
" <th>cs</th>\n",
" <th>sh</th>\n",
" <th>sf</th>\n",
" <th>bb</th>\n",
" <th>ibb</th>\n",
" <th>hbp</th>\n",
" <th>so</th>\n",
" <th>dp</th>\n",
" <th>slg</th>\n",
" <th>obp</th>\n",
" <th>ops</th>\n",
" <th>ab_k</th>\n",
" <th>pa_k</th>\n",
" <th>ab_bb</th>\n",
" <th>pa_bb</th>\n",
" <th>bb_per_so</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>巨人</td>\n",
" <td>0.253</td>\n",
" <td>139</td>\n",
" <td>5213</td>\n",
" <td>4700</td>\n",
" <td>517</td>\n",
" <td>1188</td>\n",
" <td>198</td>\n",
" <td>14</td>\n",
" <td>163</td>\n",
" <td>1903</td>\n",
" <td>505</td>\n",
" <td>47</td>\n",
" <td>29</td>\n",
" <td>92</td>\n",
" <td>31</td>\n",
" <td>353</td>\n",
" <td>38</td>\n",
" <td>37</td>\n",
" <td>1087</td>\n",
" <td>91</td>\n",
" <td>0.405</td>\n",
" <td>0.308</td>\n",
" <td>0.713</td>\n",
" <td>4.32</td>\n",
" <td>4.80</td>\n",
" <td>13.31</td>\n",
" <td>14.77</td>\n",
" <td>0.394</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>阪神</td>\n",
" <td>0.247</td>\n",
" <td>140</td>\n",
" <td>5369</td>\n",
" <td>4679</td>\n",
" <td>544</td>\n",
" <td>1158</td>\n",
" <td>177</td>\n",
" <td>34</td>\n",
" <td>81</td>\n",
" <td>1646</td>\n",
" <td>523</td>\n",
" <td>78</td>\n",
" <td>27</td>\n",
" <td>104</td>\n",
" <td>46</td>\n",
" <td>485</td>\n",
" <td>34</td>\n",
" <td>55</td>\n",
" <td>1144</td>\n",
" <td>89</td>\n",
" <td>0.352</td>\n",
" <td>0.323</td>\n",
" <td>0.675</td>\n",
" <td>4.09</td>\n",
" <td>4.69</td>\n",
" <td>9.65</td>\n",
" <td>11.07</td>\n",
" <td>0.502</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>DeNA</td>\n",
" <td>0.247</td>\n",
" <td>140</td>\n",
" <td>5225</td>\n",
" <td>4686</td>\n",
" <td>512</td>\n",
" <td>1156</td>\n",
" <td>227</td>\n",
" <td>18</td>\n",
" <td>104</td>\n",
" <td>1731</td>\n",
" <td>495</td>\n",
" <td>32</td>\n",
" <td>25</td>\n",
" <td>101</td>\n",
" <td>31</td>\n",
" <td>352</td>\n",
" <td>22</td>\n",
" <td>55</td>\n",
" <td>832</td>\n",
" <td>100</td>\n",
" <td>0.369</td>\n",
" <td>0.305</td>\n",
" <td>0.674</td>\n",
" <td>5.63</td>\n",
" <td>6.28</td>\n",
" <td>13.31</td>\n",
" <td>14.84</td>\n",
" <td>0.516</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>広島</td>\n",
" <td>0.246</td>\n",
" <td>141</td>\n",
" <td>5169</td>\n",
" <td>4664</td>\n",
" <td>486</td>\n",
" <td>1146</td>\n",
" <td>196</td>\n",
" <td>17</td>\n",
" <td>94</td>\n",
" <td>1658</td>\n",
" <td>469</td>\n",
" <td>77</td>\n",
" <td>50</td>\n",
" <td>93</td>\n",
" <td>20</td>\n",
" <td>345</td>\n",
" <td>25</td>\n",
" <td>47</td>\n",
" <td>1017</td>\n",
" <td>114</td>\n",
" <td>0.355</td>\n",
" <td>0.303</td>\n",
" <td>0.658</td>\n",
" <td>4.59</td>\n",
" <td>5.08</td>\n",
" <td>13.52</td>\n",
" <td>14.98</td>\n",
" <td>0.410</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>ヤクルト</td>\n",
" <td>0.239</td>\n",
" <td>140</td>\n",
" <td>5247</td>\n",
" <td>4609</td>\n",
" <td>527</td>\n",
" <td>1103</td>\n",
" <td>208</td>\n",
" <td>11</td>\n",
" <td>122</td>\n",
" <td>1699</td>\n",
" <td>502</td>\n",
" <td>61</td>\n",
" <td>20</td>\n",
" <td>113</td>\n",
" <td>33</td>\n",
" <td>442</td>\n",
" <td>23</td>\n",
" <td>50</td>\n",
" <td>1075</td>\n",
" <td>111</td>\n",
" <td>0.369</td>\n",
" <td>0.311</td>\n",
" <td>0.680</td>\n",
" <td>4.29</td>\n",
" <td>4.88</td>\n",
" <td>10.43</td>\n",
" <td>11.87</td>\n",
" <td>0.479</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>中日</td>\n",
" <td>0.236</td>\n",
" <td>140</td>\n",
" <td>5156</td>\n",
" <td>4703</td>\n",
" <td>387</td>\n",
" <td>1108</td>\n",
" <td>185</td>\n",
" <td>19</td>\n",
" <td>70</td>\n",
" <td>1541</td>\n",
" <td>368</td>\n",
" <td>35</td>\n",
" <td>24</td>\n",
" <td>90</td>\n",
" <td>22</td>\n",
" <td>303</td>\n",
" <td>18</td>\n",
" <td>38</td>\n",
" <td>1007</td>\n",
" <td>93</td>\n",
" <td>0.328</td>\n",
" <td>0.286</td>\n",
" <td>0.614</td>\n",
" <td>4.67</td>\n",
" <td>5.12</td>\n",
" <td>15.52</td>\n",
" <td>17.02</td>\n",
" <td>0.357</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-a65410f4-ad8b-4f13-904e-b3c1b2c7f5bc')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-a65410f4-ad8b-4f13-904e-b3c1b2c7f5bc button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-a65410f4-ad8b-4f13-904e-b3c1b2c7f5bc');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-be4b2bf7-7b77-4f4c-89cc-dcbe77e06967\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-be4b2bf7-7b77-4f4c-89cc-dcbe77e06967')\"\n",
" title=\"Suggest charts.\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-be4b2bf7-7b77-4f4c-89cc-dcbe77e06967 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 13
}
]
},
{
"cell_type": "code",
"source": [
"# 必要な指標を作り込む(投手)\n",
"# memo: fipの補正値は適当(今年は打低すぎるので2.8とかでもいいかも)\n",
"df_stats_p['fip'] = round((3 * (df_stats_p['bb'] + df_stats_p['hbp'] - df_stats_p['ibb']) + (13 * df_stats_p['hr']) - (2 * df_stats_p['so'])) / df_stats_p['ip'] + 3, 2)\n",
"df_stats_p['so_p'] = round(((df_stats_p['so'] * 9) /df_stats_p['ip']), 2)\n",
"df_stats_p['bb_p'] = round(((df_stats_p['bb'] * 9) /df_stats_p['ip']), 2)\n",
"df_stats_p"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"id": "OCXwYiPnMRZg",
"outputId": "b3fa9004-5d90-4d31-bb66-7a1fe9d8b777"
},
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" team era g win lose sv hld hldp cg sho no_walks win_p \\\n",
"0 阪神 2.63 140 84 51 44 126 147 10 18 24 0.622 \n",
"1 中日 3.09 140 55 80 36 142 163 4 7 9 0.407 \n",
"2 DeNA 3.20 140 72 65 41 118 139 8 14 16 0.526 \n",
"3 広島 3.21 141 73 64 45 122 148 9 14 11 0.533 \n",
"4 巨人 3.47 139 68 69 29 118 144 7 16 8 0.496 \n",
"5 ヤクルト 3.69 140 56 81 33 130 145 3 15 9 0.409 \n",
"\n",
" batter_faces ip h hr bb ibb hbp so wp balk r er \\\n",
"0 5104 1262.1 1075 85 310 17 41 988 22 2 412 369 \n",
"1 5270 1261.1 1097 76 435 18 50 1045 32 0 490 433 \n",
"2 5265 1263.1 1187 118 357 28 42 1143 28 0 493 449 \n",
"3 5282 1257.0 1173 108 392 28 42 955 31 3 501 449 \n",
"4 5164 1240.1 1097 128 396 17 64 1041 27 6 504 478 \n",
"5 5231 1241.2 1191 139 376 41 62 935 33 1 558 509 \n",
"\n",
" fip so_p bb_p \n",
"0 3.10 7.05 2.21 \n",
"1 3.24 7.46 3.10 \n",
"2 3.29 8.14 2.54 \n",
"3 3.57 6.84 2.81 \n",
"4 3.73 7.56 2.87 \n",
"5 3.91 6.78 2.73 "
],
"text/html": [
"\n",
" <div id=\"df-84593e0a-52be-4501-a231-f9de324d7005\" class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>era</th>\n",
" <th>g</th>\n",
" <th>win</th>\n",
" <th>lose</th>\n",
" <th>sv</th>\n",
" <th>hld</th>\n",
" <th>hldp</th>\n",
" <th>cg</th>\n",
" <th>sho</th>\n",
" <th>no_walks</th>\n",
" <th>win_p</th>\n",
" <th>batter_faces</th>\n",
" <th>ip</th>\n",
" <th>h</th>\n",
" <th>hr</th>\n",
" <th>bb</th>\n",
" <th>ibb</th>\n",
" <th>hbp</th>\n",
" <th>so</th>\n",
" <th>wp</th>\n",
" <th>balk</th>\n",
" <th>r</th>\n",
" <th>er</th>\n",
" <th>fip</th>\n",
" <th>so_p</th>\n",
" <th>bb_p</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>阪神</td>\n",
" <td>2.63</td>\n",
" <td>140</td>\n",
" <td>84</td>\n",
" <td>51</td>\n",
" <td>44</td>\n",
" <td>126</td>\n",
" <td>147</td>\n",
" <td>10</td>\n",
" <td>18</td>\n",
" <td>24</td>\n",
" <td>0.622</td>\n",
" <td>5104</td>\n",
" <td>1262.1</td>\n",
" <td>1075</td>\n",
" <td>85</td>\n",
" <td>310</td>\n",
" <td>17</td>\n",
" <td>41</td>\n",
" <td>988</td>\n",
" <td>22</td>\n",
" <td>2</td>\n",
" <td>412</td>\n",
" <td>369</td>\n",
" <td>3.10</td>\n",
" <td>7.05</td>\n",
" <td>2.21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>中日</td>\n",
" <td>3.09</td>\n",
" <td>140</td>\n",
" <td>55</td>\n",
" <td>80</td>\n",
" <td>36</td>\n",
" <td>142</td>\n",
" <td>163</td>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>0.407</td>\n",
" <td>5270</td>\n",
" <td>1261.1</td>\n",
" <td>1097</td>\n",
" <td>76</td>\n",
" <td>435</td>\n",
" <td>18</td>\n",
" <td>50</td>\n",
" <td>1045</td>\n",
" <td>32</td>\n",
" <td>0</td>\n",
" <td>490</td>\n",
" <td>433</td>\n",
" <td>3.24</td>\n",
" <td>7.46</td>\n",
" <td>3.10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>DeNA</td>\n",
" <td>3.20</td>\n",
" <td>140</td>\n",
" <td>72</td>\n",
" <td>65</td>\n",
" <td>41</td>\n",
" <td>118</td>\n",
" <td>139</td>\n",
" <td>8</td>\n",
" <td>14</td>\n",
" <td>16</td>\n",
" <td>0.526</td>\n",
" <td>5265</td>\n",
" <td>1263.1</td>\n",
" <td>1187</td>\n",
" <td>118</td>\n",
" <td>357</td>\n",
" <td>28</td>\n",
" <td>42</td>\n",
" <td>1143</td>\n",
" <td>28</td>\n",
" <td>0</td>\n",
" <td>493</td>\n",
" <td>449</td>\n",
" <td>3.29</td>\n",
" <td>8.14</td>\n",
" <td>2.54</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>広島</td>\n",
" <td>3.21</td>\n",
" <td>141</td>\n",
" <td>73</td>\n",
" <td>64</td>\n",
" <td>45</td>\n",
" <td>122</td>\n",
" <td>148</td>\n",
" <td>9</td>\n",
" <td>14</td>\n",
" <td>11</td>\n",
" <td>0.533</td>\n",
" <td>5282</td>\n",
" <td>1257.0</td>\n",
" <td>1173</td>\n",
" <td>108</td>\n",
" <td>392</td>\n",
" <td>28</td>\n",
" <td>42</td>\n",
" <td>955</td>\n",
" <td>31</td>\n",
" <td>3</td>\n",
" <td>501</td>\n",
" <td>449</td>\n",
" <td>3.57</td>\n",
" <td>6.84</td>\n",
" <td>2.81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>巨人</td>\n",
" <td>3.47</td>\n",
" <td>139</td>\n",
" <td>68</td>\n",
" <td>69</td>\n",
" <td>29</td>\n",
" <td>118</td>\n",
" <td>144</td>\n",
" <td>7</td>\n",
" <td>16</td>\n",
" <td>8</td>\n",
" <td>0.496</td>\n",
" <td>5164</td>\n",
" <td>1240.1</td>\n",
" <td>1097</td>\n",
" <td>128</td>\n",
" <td>396</td>\n",
" <td>17</td>\n",
" <td>64</td>\n",
" <td>1041</td>\n",
" <td>27</td>\n",
" <td>6</td>\n",
" <td>504</td>\n",
" <td>478</td>\n",
" <td>3.73</td>\n",
" <td>7.56</td>\n",
" <td>2.87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>ヤクルト</td>\n",
" <td>3.69</td>\n",
" <td>140</td>\n",
" <td>56</td>\n",
" <td>81</td>\n",
" <td>33</td>\n",
" <td>130</td>\n",
" <td>145</td>\n",
" <td>3</td>\n",
" <td>15</td>\n",
" <td>9</td>\n",
" <td>0.409</td>\n",
" <td>5231</td>\n",
" <td>1241.2</td>\n",
" <td>1191</td>\n",
" <td>139</td>\n",
" <td>376</td>\n",
" <td>41</td>\n",
" <td>62</td>\n",
" <td>935</td>\n",
" <td>33</td>\n",
" <td>1</td>\n",
" <td>558</td>\n",
" <td>509</td>\n",
" <td>3.91</td>\n",
" <td>6.78</td>\n",
" <td>2.73</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-84593e0a-52be-4501-a231-f9de324d7005')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-84593e0a-52be-4501-a231-f9de324d7005 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-84593e0a-52be-4501-a231-f9de324d7005');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-7732b06a-244d-4d77-930f-76204ebaddcd\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-7732b06a-244d-4d77-930f-76204ebaddcd')\"\n",
" title=\"Suggest charts.\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-7732b06a-244d-4d77-930f-76204ebaddcd button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
" </div>\n",
" </div>\n"
]
},
"metadata": {},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"source": [
"# 計算したデータを保存(必要なときだけ有効化)\n",
"\n",
"df_stats_b.to_csv(f'{now.strftime(\"%Y%m%d_%H%M%S\")}_team_stats_batting.csv')\n",
"df_stats_p.to_csv(f'{now.strftime(\"%Y%m%d_%H%M%S\")}_team_stats_pitcing.csv')"
],
"metadata": {
"id": "1X5ENewMNN3N"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## 成績の可視化"
],
"metadata": {
"id": "EJYNVyRL5feF"
}
},
{
"cell_type": "code",
"source": [
"# Plotlyで可視化\n",
"!pip install plotly"
],
"metadata": {
"id": "673O5VslWJtp",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "9c2ca545-6cdf-4be8-8002-f4a0b814a82a"
},
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Requirement already satisfied: plotly in /usr/local/lib/python3.10/dist-packages (5.15.0)\n",
"Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly) (8.2.3)\n",
"Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from plotly) (23.1)\n"
]
}
]
},
{
"cell_type": "code",
"source": [
"import plotly.express as px\n",
"\n",
"WIDTH = 1400\n",
"HEIGHT = 700\n",
"\n",
"fig = px.bar(df_stats_b.sort_values(['pa_bb'], ascending=False), x=['pa_k', 'pa_bb'], y='team', barmode='group',)\n",
"fig.update_layout(\n",
" title=f\"【チーム打撃成績】三振および四球獲得までの平均打席数 ※{now.strftime('%Y/%m/%d')}時点\",\n",
" # autosize=True, # 画面に合わせたい時に有効化\n",
" width=WIDTH,\n",
" height=HEIGHT,\n",
" legend_title=None\n",
")\n",
"fig.update_yaxes(title='チーム名(pa_bbの昇順)')\n",
"fig.update_xaxes(title='pa_k(三振するまでの平均打席数), ab_bb(四球獲得までの平均打席数)', dtick=2, range=(0, 18))\n",
"fig.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 717
},
"id": "JBaL0L2O4ZeZ",
"outputId": "d1202b0a-fa34-414b-d423-0475421c609f"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"ac86e683-186f-4ccf-b029-b40325ea140d\" class=\"plotly-graph-div\" style=\"height:700px; width:1400px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"ac86e683-186f-4ccf-b029-b40325ea140d\")) { Plotly.newPlot( \"ac86e683-186f-4ccf-b029-b40325ea140d\", [{\"alignmentgroup\":\"True\",\"hovertemplate\":\"variable=pa_k\\u003cbr\\u003evalue=%{x}\\u003cbr\\u003eteam=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"pa_k\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"}},\"name\":\"pa_k\",\"offsetgroup\":\"pa_k\",\"orientation\":\"h\",\"showlegend\":true,\"textposition\":\"auto\",\"x\":[5.12,5.08,6.28,4.8,4.88,4.69],\"xaxis\":\"x\",\"y\":[\"\\u4e2d\\u65e5\",\"\\u5e83\\u5cf6\",\"DeNA\",\"\\u5de8\\u4eba\",\"\\u30e4\\u30af\\u30eb\\u30c8\",\"\\u962a\\u795e\"],\"yaxis\":\"y\",\"type\":\"bar\"},{\"alignmentgroup\":\"True\",\"hovertemplate\":\"variable=pa_bb\\u003cbr\\u003evalue=%{x}\\u003cbr\\u003eteam=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"pa_bb\",\"marker\":{\"color\":\"#EF553B\",\"pattern\":{\"shape\":\"\"}},\"name\":\"pa_bb\",\"offsetgroup\":\"pa_bb\",\"orientation\":\"h\",\"showlegend\":true,\"textposition\":\"auto\",\"x\":[17.02,14.98,14.84,14.77,11.87,11.07],\"xaxis\":\"x\",\"y\":[\"\\u4e2d\\u65e5\",\"\\u5e83\\u5cf6\",\"DeNA\",\"\\u5de8\\u4eba\",\"\\u30e4\\u30af\\u30eb\\u30c8\",\"\\u962a\\u795e\"],\"yaxis\":\"y\",\"type\":\"bar\"}], {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"pa_k\\uff08\\u4e09\\u632f\\u3059\\u308b\\u307e\\u3067\\u306e\\u5e73\\u5747\\u6253\\u5e2d\\u6570\\uff09, ab_bb\\uff08\\u56db\\u7403\\u7372\\u5f97\\u307e\\u3067\\u306e\\u5e73\\u5747\\u6253\\u5e2d\\u6570\\uff09\"},\"dtick\":2,\"range\":[0,18]},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u30c1\\u30fc\\u30e0\\u540d\\uff08pa_bb\\u306e\\u6607\\u9806\\uff09\"}},\"legend\":{\"title\":{},\"tracegroupgap\":0},\"margin\":{\"t\":60},\"barmode\":\"group\",\"title\":{\"text\":\"\\u3010\\u30c1\\u30fc\\u30e0\\u6253\\u6483\\u6210\\u7e3e\\u3011\\u4e09\\u632f\\u304a\\u3088\\u3073\\u56db\\u7403\\u7372\\u5f97\\u307e\\u3067\\u306e\\u5e73\\u5747\\u6253\\u5e2d\\u6570 \\u203b2023\\u002f09\\u002f30\\u6642\\u70b9\"},\"width\":1400,\"height\":700}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('ac86e683-186f-4ccf-b029-b40325ea140d');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"fig = px.bar(df_stats_p.sort_values(['bb_p'], ascending=False), x=['so_p', 'bb_p'], y='team', barmode='group',)\n",
"fig.update_layout(\n",
" title=f\"【チーム投手成績】奪三振率と与四球率の比較 ※{now.strftime('%Y/%m/%d')}時点\",\n",
" # autosize=True, # 画面に合わせたい時に有効化\n",
" width=WIDTH,\n",
" height=HEIGHT,\n",
" legend_title=None\n",
")\n",
"fig.update_yaxes(title='チーム名(与四球率の昇順)')\n",
"fig.update_xaxes(title='so_p(奪三振率), bb_p(与四球率)', dtick=1, range=(0, 9))\n",
"fig.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 717
},
"id": "9QvKLZV34xnE",
"outputId": "6f41d82e-a0d1-4220-dd1e-a190e1edeafd"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"d9911ea9-35e8-46ff-a367-493205969fbb\" class=\"plotly-graph-div\" style=\"height:700px; width:1400px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"d9911ea9-35e8-46ff-a367-493205969fbb\")) { Plotly.newPlot( \"d9911ea9-35e8-46ff-a367-493205969fbb\", [{\"alignmentgroup\":\"True\",\"hovertemplate\":\"variable=so_p\\u003cbr\\u003evalue=%{x}\\u003cbr\\u003eteam=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"so_p\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"}},\"name\":\"so_p\",\"offsetgroup\":\"so_p\",\"orientation\":\"h\",\"showlegend\":true,\"textposition\":\"auto\",\"x\":[7.46,7.56,6.84,6.78,8.14,7.05],\"xaxis\":\"x\",\"y\":[\"\\u4e2d\\u65e5\",\"\\u5de8\\u4eba\",\"\\u5e83\\u5cf6\",\"\\u30e4\\u30af\\u30eb\\u30c8\",\"DeNA\",\"\\u962a\\u795e\"],\"yaxis\":\"y\",\"type\":\"bar\"},{\"alignmentgroup\":\"True\",\"hovertemplate\":\"variable=bb_p\\u003cbr\\u003evalue=%{x}\\u003cbr\\u003eteam=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"bb_p\",\"marker\":{\"color\":\"#EF553B\",\"pattern\":{\"shape\":\"\"}},\"name\":\"bb_p\",\"offsetgroup\":\"bb_p\",\"orientation\":\"h\",\"showlegend\":true,\"textposition\":\"auto\",\"x\":[3.1,2.87,2.81,2.73,2.54,2.21],\"xaxis\":\"x\",\"y\":[\"\\u4e2d\\u65e5\",\"\\u5de8\\u4eba\",\"\\u5e83\\u5cf6\",\"\\u30e4\\u30af\\u30eb\\u30c8\",\"DeNA\",\"\\u962a\\u795e\"],\"yaxis\":\"y\",\"type\":\"bar\"}], {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"so_p\\uff08\\u596a\\u4e09\\u632f\\u7387\\uff09, bb_p\\uff08\\u4e0e\\u56db\\u7403\\u7387\\uff09\"},\"dtick\":1,\"range\":[0,9]},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u30c1\\u30fc\\u30e0\\u540d\\uff08\\u4e0e\\u56db\\u7403\\u7387\\u306e\\u6607\\u9806\\uff09\"}},\"legend\":{\"title\":{},\"tracegroupgap\":0},\"margin\":{\"t\":60},\"barmode\":\"group\",\"title\":{\"text\":\"\\u3010\\u30c1\\u30fc\\u30e0\\u6295\\u624b\\u6210\\u7e3e\\u3011\\u596a\\u4e09\\u632f\\u7387\\u3068\\u4e0e\\u56db\\u7403\\u7387\\u306e\\u6bd4\\u8f03 \\u203b2023\\u002f09\\u002f30\\u6642\\u70b9\"},\"width\":1400,\"height\":700}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('d9911ea9-35e8-46ff-a367-493205969fbb');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "wmLKpx8gCBN6"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## 以下, スライド素材用のデータ"
],
"metadata": {
"id": "UsUM_0NgGdC0"
}
},
{
"cell_type": "code",
"source": [
"import plotly.express as px\n",
"fig = px.bar(df_stats_b.sort_values(['pa_bb'], ascending=False), x=['pa_bb'], y='team', barmode='group',)\n",
"fig.update_layout(\n",
" title=f\"【チーム打撃成績】四球獲得に要した打席数(少ない=多く四球を獲得しているので優秀) ※{now.strftime('%Y/%m/%d')}時点\",\n",
" # autosize=True, # 画面に合わせたい時に有効化\n",
" width=WIDTH,\n",
" height=HEIGHT,\n",
" legend_title=None\n",
")\n",
"fig.update_yaxes(title='チーム名(数字が優秀な順)')\n",
"fig.update_xaxes(title='四球獲得までの平均打席数(pa_bb)', dtick=2, range=(0, 18))\n",
"fig.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 717
},
"outputId": "955fa72b-ab24-411b-b64c-1b428fff7ef3",
"id": "eOQlkn_AGZig"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"f6e9d45a-4cba-4376-9506-e2df444eca12\" class=\"plotly-graph-div\" style=\"height:700px; width:1400px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"f6e9d45a-4cba-4376-9506-e2df444eca12\")) { Plotly.newPlot( \"f6e9d45a-4cba-4376-9506-e2df444eca12\", [{\"alignmentgroup\":\"True\",\"hovertemplate\":\"variable=pa_bb\\u003cbr\\u003evalue=%{x}\\u003cbr\\u003eteam=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"pa_bb\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"}},\"name\":\"pa_bb\",\"offsetgroup\":\"pa_bb\",\"orientation\":\"h\",\"showlegend\":true,\"textposition\":\"auto\",\"x\":[17.02,14.98,14.84,14.77,11.87,11.07],\"xaxis\":\"x\",\"y\":[\"\\u4e2d\\u65e5\",\"\\u5e83\\u5cf6\",\"DeNA\",\"\\u5de8\\u4eba\",\"\\u30e4\\u30af\\u30eb\\u30c8\",\"\\u962a\\u795e\"],\"yaxis\":\"y\",\"type\":\"bar\"}], {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u56db\\u7403\\u7372\\u5f97\\u307e\\u3067\\u306e\\u5e73\\u5747\\u6253\\u5e2d\\u6570\\uff08pa_bb\\uff09\"},\"dtick\":2,\"range\":[0,18]},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u30c1\\u30fc\\u30e0\\u540d\\uff08\\u6570\\u5b57\\u304c\\u512a\\u79c0\\u306a\\u9806\\uff09\"}},\"legend\":{\"title\":{},\"tracegroupgap\":0},\"margin\":{\"t\":60},\"barmode\":\"group\",\"title\":{\"text\":\"\\u3010\\u30c1\\u30fc\\u30e0\\u6253\\u6483\\u6210\\u7e3e\\u3011\\u56db\\u7403\\u7372\\u5f97\\u306b\\u8981\\u3057\\u305f\\u6253\\u5e2d\\u6570\\uff08\\u5c11\\u306a\\u3044=\\u591a\\u304f\\u56db\\u7403\\u3092\\u7372\\u5f97\\u3057\\u3066\\u3044\\u308b\\u306e\\u3067\\u512a\\u79c0\\uff09 \\u203b2023\\u002f09\\u002f30\\u6642\\u70b9\"},\"width\":1400,\"height\":700}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('f6e9d45a-4cba-4376-9506-e2df444eca12');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "1j1Xkc_pGavG"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import plotly.express as px\n",
"fig = px.bar(df_stats_b.sort_values(['pa_k'], ascending=True), x=['pa_k'], y='team', barmode='group',)\n",
"fig.update_layout(\n",
" title=f\"【チーム打撃成績】三振するまでの平均打席数(多い=三振が少ない) ※{now.strftime('%Y/%m/%d')}時点\",\n",
" # autosize=True, # 画面に合わせたい時に有効化\n",
" width=WIDTH,\n",
" height=HEIGHT,\n",
" legend_title=None\n",
")\n",
"fig.update_yaxes(title='チーム名(数字が優秀な順)')\n",
"fig.update_xaxes(title='三振するまでの平均打席数(pa_k)', dtick=1, range=(0, 9))\n",
"fig.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 717
},
"outputId": "29f943c7-5929-4ad6-cea8-3b03c880d2e3",
"id": "C8Ot08jqGa-E"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"a408e379-40c9-4c50-9cab-38945e486951\" class=\"plotly-graph-div\" style=\"height:700px; width:1400px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"a408e379-40c9-4c50-9cab-38945e486951\")) { Plotly.newPlot( \"a408e379-40c9-4c50-9cab-38945e486951\", [{\"alignmentgroup\":\"True\",\"hovertemplate\":\"variable=pa_k\\u003cbr\\u003evalue=%{x}\\u003cbr\\u003eteam=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"pa_k\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"}},\"name\":\"pa_k\",\"offsetgroup\":\"pa_k\",\"orientation\":\"h\",\"showlegend\":true,\"textposition\":\"auto\",\"x\":[4.69,4.8,4.88,5.08,5.12,6.28],\"xaxis\":\"x\",\"y\":[\"\\u962a\\u795e\",\"\\u5de8\\u4eba\",\"\\u30e4\\u30af\\u30eb\\u30c8\",\"\\u5e83\\u5cf6\",\"\\u4e2d\\u65e5\",\"DeNA\"],\"yaxis\":\"y\",\"type\":\"bar\"}], {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u4e09\\u632f\\u3059\\u308b\\u307e\\u3067\\u306e\\u5e73\\u5747\\u6253\\u5e2d\\u6570\\uff08pa_k\\uff09\"},\"dtick\":1,\"range\":[0,9]},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u30c1\\u30fc\\u30e0\\u540d\\uff08\\u6570\\u5b57\\u304c\\u512a\\u79c0\\u306a\\u9806\\uff09\"}},\"legend\":{\"title\":{},\"tracegroupgap\":0},\"margin\":{\"t\":60},\"barmode\":\"group\",\"title\":{\"text\":\"\\u3010\\u30c1\\u30fc\\u30e0\\u6253\\u6483\\u6210\\u7e3e\\u3011\\u4e09\\u632f\\u3059\\u308b\\u307e\\u3067\\u306e\\u5e73\\u5747\\u6253\\u5e2d\\u6570\\uff08\\u591a\\u3044=\\u4e09\\u632f\\u304c\\u5c11\\u306a\\u3044\\uff09 \\u203b2023\\u002f09\\u002f30\\u6642\\u70b9\"},\"width\":1400,\"height\":700}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('a408e379-40c9-4c50-9cab-38945e486951');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"fig = px.bar(df_stats_p.sort_values(['so_p'], ascending=True), x=['so_p'], y='team', barmode='group',)\n",
"fig.update_layout(\n",
" title=f\"【チーム投手成績】奪三振率(高いと優秀) ※{now.strftime('%Y/%m/%d')}時点\",\n",
" # autosize=True, # 画面に合わせたい時に有効化\n",
" width=WIDTH,\n",
" height=HEIGHT,\n",
" legend_title=None\n",
")\n",
"fig.update_yaxes(title='チーム名(数字が優秀な順)')\n",
"fig.update_xaxes(title='奪三振率(so_p)', dtick=1, range=(0, 9))\n",
"fig.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 717
},
"id": "D5Kiz3vsHlt4",
"outputId": "aff8b8d0-a500-4327-b23c-9cb334e45ee5"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"e1240289-4d35-412f-b2d9-e24884b6c1e6\" class=\"plotly-graph-div\" style=\"height:700px; width:1400px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"e1240289-4d35-412f-b2d9-e24884b6c1e6\")) { Plotly.newPlot( \"e1240289-4d35-412f-b2d9-e24884b6c1e6\", [{\"alignmentgroup\":\"True\",\"hovertemplate\":\"variable=so_p\\u003cbr\\u003evalue=%{x}\\u003cbr\\u003eteam=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"so_p\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"}},\"name\":\"so_p\",\"offsetgroup\":\"so_p\",\"orientation\":\"h\",\"showlegend\":true,\"textposition\":\"auto\",\"x\":[6.78,6.84,7.05,7.46,7.56,8.14],\"xaxis\":\"x\",\"y\":[\"\\u30e4\\u30af\\u30eb\\u30c8\",\"\\u5e83\\u5cf6\",\"\\u962a\\u795e\",\"\\u4e2d\\u65e5\",\"\\u5de8\\u4eba\",\"DeNA\"],\"yaxis\":\"y\",\"type\":\"bar\"}], {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u596a\\u4e09\\u632f\\u7387\\uff08so_p\\uff09\"},\"dtick\":1,\"range\":[0,9]},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u30c1\\u30fc\\u30e0\\u540d\\uff08\\u6570\\u5b57\\u304c\\u512a\\u79c0\\u306a\\u9806\\uff09\"}},\"legend\":{\"title\":{},\"tracegroupgap\":0},\"margin\":{\"t\":60},\"barmode\":\"group\",\"title\":{\"text\":\"\\u3010\\u30c1\\u30fc\\u30e0\\u6295\\u624b\\u6210\\u7e3e\\u3011\\u596a\\u4e09\\u632f\\u7387\\uff08\\u9ad8\\u3044\\u3068\\u512a\\u79c0\\uff09 \\u203b2023\\u002f09\\u002f30\\u6642\\u70b9\"},\"width\":1400,\"height\":700}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('e1240289-4d35-412f-b2d9-e24884b6c1e6');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"fig = px.bar(df_stats_p.sort_values(['bb_p'], ascending=False), x=['bb_p'], y='team', barmode='group',)\n",
"fig.update_layout(\n",
" title=f\"【チーム投手成績】与四球率(低いと優秀) ※{now.strftime('%Y/%m/%d')}時点\",\n",
" # autosize=True, # 画面に合わせたい時に有効化\n",
" width=WIDTH,\n",
" height=HEIGHT,\n",
" legend_title=None\n",
")\n",
"fig.update_yaxes(title='チーム名(数字が優秀な順)')\n",
"fig.update_xaxes(title='与四球率(bb_p)', dtick=1, range=(0, 6))\n",
"fig.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 717
},
"id": "ov6fAwzFJOxH",
"outputId": "c400534c-19ba-4766-dd21-379f5939ff84"
},
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<html>\n",
"<head><meta charset=\"utf-8\" /></head>\n",
"<body>\n",
" <div> <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script> <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n",
" <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.24.1.min.js\"></script> <div id=\"1281b701-876e-4b58-8cba-952bb57a0a2f\" class=\"plotly-graph-div\" style=\"height:700px; width:1400px;\"></div> <script type=\"text/javascript\"> window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"1281b701-876e-4b58-8cba-952bb57a0a2f\")) { Plotly.newPlot( \"1281b701-876e-4b58-8cba-952bb57a0a2f\", [{\"alignmentgroup\":\"True\",\"hovertemplate\":\"variable=bb_p\\u003cbr\\u003evalue=%{x}\\u003cbr\\u003eteam=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"bb_p\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"}},\"name\":\"bb_p\",\"offsetgroup\":\"bb_p\",\"orientation\":\"h\",\"showlegend\":true,\"textposition\":\"auto\",\"x\":[3.1,2.87,2.81,2.73,2.54,2.21],\"xaxis\":\"x\",\"y\":[\"\\u4e2d\\u65e5\",\"\\u5de8\\u4eba\",\"\\u5e83\\u5cf6\",\"\\u30e4\\u30af\\u30eb\\u30c8\",\"DeNA\",\"\\u962a\\u795e\"],\"yaxis\":\"y\",\"type\":\"bar\"}], {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u4e0e\\u56db\\u7403\\u7387\\uff08bb_p\\uff09\"},\"dtick\":1,\"range\":[0,6]},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"\\u30c1\\u30fc\\u30e0\\u540d\\uff08\\u6570\\u5b57\\u304c\\u512a\\u79c0\\u306a\\u9806\\uff09\"}},\"legend\":{\"title\":{},\"tracegroupgap\":0},\"margin\":{\"t\":60},\"barmode\":\"group\",\"title\":{\"text\":\"\\u3010\\u30c1\\u30fc\\u30e0\\u6295\\u624b\\u6210\\u7e3e\\u3011\\u4e0e\\u56db\\u7403\\u7387\\uff08\\u4f4e\\u3044\\u3068\\u512a\\u79c0\\uff09 \\u203b2023\\u002f09\\u002f30\\u6642\\u70b9\"},\"width\":1400,\"height\":700}, {\"responsive\": true} ).then(function(){\n",
" \n",
"var gd = document.getElementById('1281b701-876e-4b58-8cba-952bb57a0a2f');\n",
"var x = new MutationObserver(function (mutations, observer) {{\n",
" var display = window.getComputedStyle(gd).display;\n",
" if (!display || display === 'none') {{\n",
" console.log([gd, 'removed!']);\n",
" Plotly.purge(gd);\n",
" observer.disconnect();\n",
" }}\n",
"}});\n",
"\n",
"// Listen for the removal of the full notebook cells\n",
"var notebookContainer = gd.closest('#notebook-container');\n",
"if (notebookContainer) {{\n",
" x.observe(notebookContainer, {childList: true});\n",
"}}\n",
"\n",
"// Listen for the clearing of the current output cell\n",
"var outputEl = gd.closest('.output');\n",
"if (outputEl) {{\n",
" x.observe(outputEl, {childList: true});\n",
"}}\n",
"\n",
" }) }; </script> </div>\n",
"</body>\n",
"</html>"
]
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "IykavUTpK7WH"
},
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment