Shogaku-san

【初心者向け】簡単なExcel VBA・シートCopy&Paste → シート名を今日の日付
簡単な内容です。玄人さんはスルーで。 Excel VBAで作ったマクロ紹介します。 VBAなかなか触らない、って人の導入の機会になれば幸いです。 あと、ちょうど使おうと思ってた、という内容だったら、なお幸い。 Excel ver違いにより表記が皆さんと違う可能性はありますが、臨機応援にご対応くださいませ。 それでは、今回は 「シートCopy&Paste → Pasteシートの名前は日付にする」 の作業を進めます。 イメージは、以下みたいのです。伝わるかな、、、 ボタン押したら ①一番左のシートをコピーして ②それを一番左のシートへ貼り付ける ③その際、シート名が今日の日付になる。 ※ついでにExcelの一部(E5の場所)も日付変える設定もいれますなんで中身の記載がXRP(リップル)かは気にしないでください それでは、内容へ①まずファイルをVBA用にするVBA使えるファイルにします。 Excelを開いて名前をつけて保存で、xlsm という拡張子でファイルを保存してください。保存したら、そのファイル開いてください②マクロを使える表示にするファイル開いたら、上のところに赤枠の「開発」あ...

ガス代・リアルタイムのチャート (ETH/BSC/Polygon)
ガス代、いまどんな感じなんだろうという目安を確認したいとき、 毎度調べるのが面倒なので リアルタイムのチャートが見れるリンク先について、メモを残しておきます。 HiDEでの記事の大体が自分のメモになっていますね。すいません、、、 それでは、表題に書いてある3つのリンク先です。①ETH・Ethereum Gas Charts https://ethereumprice.org/gas/②BSC・Binance Smart Chain Average Gas Price Chart https://bscscan.com/chart/gasprice③Polygon・Polygon PoS Chain Average Gas Price Chart https://polygonscan.com/chart/gaspriceまた、下落が起きると混むかもね。 ではまた。 追記) コントラクトアドレスを探すサイト ETH、BSC、Polygon 記載した記事のリンク先も載せておきます https://hide.ac/articles/99dqSU1hQ

district / Androidアプリが出た (Dfinity)
すごく昔に記事にちょこっとしたdistrictDistrict (Dfinityの分散型SNS)・Windows登録の流れ https://hide.ac/articles/wE_FL3E76Androidアプリが出たようなので、早速インストールしてみました。The distrikt Android app is now available for download in Google Play: https://t.co/xqc3x1p9cJ! Let’s gooo $ICP family! 🚀 @dfinity @dominic_w pic.twitter.com/sjTvhpCakX — distrikt (@DistriktApp) September 14, 2021まず、Androidで試してみてわかったこと。 携帯を認証させる作業があるのですが、いくつか注意点が。①BraveAndroidだと認証で使えないと思われる。自分が出来なかっただけかも。以下のエラーで進めない。つまり、PCのBraveで使ってるアカウント引き継げず。②Chrome認証できる。アカウント引き...

【初心者向け】簡単なExcel VBA・シートCopy&Paste → シート名を今日の日付
簡単な内容です。玄人さんはスルーで。 Excel VBAで作ったマクロ紹介します。 VBAなかなか触らない、って人の導入の機会になれば幸いです。 あと、ちょうど使おうと思ってた、という内容だったら、なお幸い。 Excel ver違いにより表記が皆さんと違う可能性はありますが、臨機応援にご対応くださいませ。 それでは、今回は 「シートCopy&Paste → Pasteシートの名前は日付にする」 の作業を進めます。 イメージは、以下みたいのです。伝わるかな、、、 ボタン押したら ①一番左のシートをコピーして ②それを一番左のシートへ貼り付ける ③その際、シート名が今日の日付になる。 ※ついでにExcelの一部(E5の場所)も日付変える設定もいれますなんで中身の記載がXRP(リップル)かは気にしないでください それでは、内容へ①まずファイルをVBA用にするVBA使えるファイルにします。 Excelを開いて名前をつけて保存で、xlsm という拡張子でファイルを保存してください。保存したら、そのファイル開いてください②マクロを使える表示にするファイル開いたら、上のところに赤枠の「開発」あ...

ガス代・リアルタイムのチャート (ETH/BSC/Polygon)
ガス代、いまどんな感じなんだろうという目安を確認したいとき、 毎度調べるのが面倒なので リアルタイムのチャートが見れるリンク先について、メモを残しておきます。 HiDEでの記事の大体が自分のメモになっていますね。すいません、、、 それでは、表題に書いてある3つのリンク先です。①ETH・Ethereum Gas Charts https://ethereumprice.org/gas/②BSC・Binance Smart Chain Average Gas Price Chart https://bscscan.com/chart/gasprice③Polygon・Polygon PoS Chain Average Gas Price Chart https://polygonscan.com/chart/gaspriceまた、下落が起きると混むかもね。 ではまた。 追記) コントラクトアドレスを探すサイト ETH、BSC、Polygon 記載した記事のリンク先も載せておきます https://hide.ac/articles/99dqSU1hQ

district / Androidアプリが出た (Dfinity)
すごく昔に記事にちょこっとしたdistrictDistrict (Dfinityの分散型SNS)・Windows登録の流れ https://hide.ac/articles/wE_FL3E76Androidアプリが出たようなので、早速インストールしてみました。The distrikt Android app is now available for download in Google Play: https://t.co/xqc3x1p9cJ! Let’s gooo $ICP family! 🚀 @dfinity @dominic_w pic.twitter.com/sjTvhpCakX — distrikt (@DistriktApp) September 14, 2021まず、Androidで試してみてわかったこと。 携帯を認証させる作業があるのですが、いくつか注意点が。①BraveAndroidだと認証で使えないと思われる。自分が出来なかっただけかも。以下のエラーで進めない。つまり、PCのBraveで使ってるアカウント引き継げず。②Chrome認証できる。アカウント引き...
Shogaku-san

Subscribe to Shogaku

Subscribe to Shogaku
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers


昨日投稿のデータのコード備忘録
ダルビッシュ選手 ID 506433
https://baseballsavant.mlb.com/savant-player/yu-darvish-506433
!pip install pybaseball
from pybaseball import statcast
df = statcast(start_dt='2021-04-01', end_dt='2021-12-31')
df_darvish = df[df['pitcher'] == 506433]

df_darvish['pitch_type'].value_counts()

df_darvish['pitch_type'].value_counts().plot(kind='pie')

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 円グラフを描画する
fig, ax = plt.subplots(nrows=1, ncols=len(df_by_month), figsize=(20, 10))
# 各月ごとの円グラフを描画する
for i, (month, df_month) in enumerate(df_by_month):
pitch_type_counts = df_month['pitch_type'].value_counts()
ax[i].pie(pitch_type_counts, labels=pitch_type_counts.index, colors=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22'])
ax[i].set_title(f"{month}")
ax[i].legend(pitch_type_counts.index, title='ball')
# 軸のラベルを非表示にする
for i in range(len(df_by_month)):
ax[i].set_ylabel('')
# 凡例を非表示にする
for i in range(len(df_by_month)):
ax[i].legend().set_visible(False)

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 棒グラフを描画する
fig, ax = plt.subplots(nrows=1, ncols=len(df_by_month), figsize=(20, 5))
# 各月ごとの棒グラフを描画する
for i, (month, df_month) in enumerate(df_by_month):
# 各月ごとの "pitch_type" カラムをカウントする
pitch_type_counts = df_month['pitch_type'].value_counts()
# 各月ごとの "pitch_type" カラムを棒グラフで表示する
ax[i].bar(pitch_type_counts.index, pitch_type_counts.values, color=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22'])
# 棒グラフのタイトルを設定する
ax[i].set_title(f"{month}")
# 棒グラフの軸に各球種を設定する
ax[i].set_xticklabels(pitch_type_counts.index, rotation=45, ha='right')
# 軸のラベルを非表示にする
for i in range(len(df_by_month)):
ax[i].set_ylabel('')
# 凡例を非表示にする
for i in range(len(df_by_month)):
ax[i].legend().set_visible(False)

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 折れ線グラフを描画する
fig, ax = plt.subplots(figsize=(10, 5))
# 各月ごとの "pitch_type" カラムをカウントする
pitch_type_counts = df_by_month['pitch_type'].value_counts()
# 各月ごとの "pitch_type" カラムを折れ線グラフで表示する
# pitch_type_countsを月をインデックスとするデータフレームに変換する
pitch_type_counts_df = pitch_type_counts.unstack(level=0)
for pitch_type, pitch_type_count in pitch_type_counts_df.iteritems():
ax.plot(pitch_type_count.index, pitch_type_count.values, label=pitch_type)
# 折れ線グラフのタイトルを設定する
ax.set_title("Pitch type count by month")
# 凡例を表示する
ax.legend()
# グラフを表示する
plt.show()#

import matplotlib.pyplot as plt
# df_darvish DataFrame の "pitch_type" カラムをカウントする
pitch_type_counts = df_darvish['pitch_type'].value_counts()
# 棒グラフを描画する
fig, ax = plt.subplots(figsize=(10, 5))
# 各月ごとの "pitch_type" カラムを棒グラフで表示する
ax.bar(pitch_type_counts.index, pitch_type_counts.values)
# 棒グラフのタイトルを設定する
ax.set_title("Pitch type count")
# 棒グラフの軸に各球種を設定する
ax.set_xticklabels(pitch_type_counts.index, rotation=45)
# 棒グラフを表示する
plt.show()

import pandas as pd
# release_speedとspin rateの平均値を算出する
df_mean = df_darvish.groupby('pitch_type')[['release_speed', 'release_spin_rate']].mean()
# release_speedとspin rateの標準偏差を算出する
df_std = df_darvish.groupby('pitch_type')[['release_speed', 'release_spin_rate']].std()
# 平均値と標準偏差を行方向に結合する
df_stats = pd.concat([df_mean, df_std], axis=1)
df_stats.columns = ['mean_release_speed', 'mean_spin_rate', 'std_release_speed', 'std_spin_rate']
print(df_stats)

print(df_darvish['pitch_type'].unique())
print(df['pitch_type'].unique())
['CU' 'SL' 'FF' 'FS' 'FC' 'SI' 'KC' 'CH' 'CS']['FF' 'SL' 'CU' 'CH' 'FS' 'SI' 'KC' 'FC' 'CS' nan 'FA' 'KN' 'EP' 'SC']
import matplotlib.pyplot as plt
# ボックスプロットを描画する
fig, ax = plt.subplots(figsize=(10, 5))
# 全投手のFFの球種のrelease_spin_rateをボックスプロットで表示する
df[df['pitch_type'] == 'FF'].boxplot(column='release_spin_rate', by='pitch_type', ax=ax, positions=[1])
# ダルビッシュのFFの球種のrelease_spin_rateをボックスプロットで表示する
df_darvish[df_darvish['pitch_type'] == 'FF'].boxplot(column='release_spin_rate', by='pitch_type', ax=ax, positions=[2])
# グラフのタイトルを設定する
ax.set_title("release_spin_rate by pitch_type (all vs. Darvish)")
# 軸のラベルを設定する
ax.set_xlabel("FF_pitch_type")
ax.set_ylabel("release_spin_rate")
# X軸のラベルを設定する
ax.set_xticklabels(['All', 'Darvish'])
# グラフを表示する
plt.show()

import matplotlib.pyplot as plt
# ボックスプロットを描画する
fig, ax = plt.subplots(figsize=(10, 5))
# 全投手のFFの球種のrelease_spin_rateをボックスプロットで表示する
df[df['pitch_type'] == 'FF'].boxplot(column='release_speed', by='pitch_type', ax=ax, positions=[1])
# ダルビッシュのFFの球種のrelease_spin_rateをボックスプロットで表示する
df_darvish[df_darvish['pitch_type'] == 'FF'].boxplot(column='release_speed', by='pitch_type', ax=ax, positions=[2])
# 全投手のFFの球種のrelease_speedの平均値を表示する
mean_all = df[df['pitch_type'] == 'FF']['release_speed'].mean()
ax.text(1, mean_all, f"mean = {mean_all:.2f}", ha='center', va='bottom')
# ダルビッシュのFFの球種のrelease_speedの平均値を表示する
mean_darvish = df_darvish[df_darvish['pitch_type'] == 'FF']['release_speed'].mean()
ax.text(2, mean_darvish, f"mean = {mean_darvish:.2f}", ha='center', va='bottom')
# グラフのタイトルを設定する
ax.set_title("release_speed by pitch_type (all vs. Darvish)")
# 軸のラベルを設定する
ax.set_xlabel("FF_pitch_type")
ax.set_ylabel("release_speed")
# X軸のラベルを設定する
ax.set_xticklabels(['All', 'Darvish'])
ax.set_ylim(70, 105)
# グラフを表示する
plt.show()

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 色を設定する
colors = {'FC': '#1f77b4', 'SL': '#ff7f0e', 'FF': '#2ca02c', 'SI': '#d62728', 'FS': '#9467bd', 'CU': '#8c564b', 'KC': '#e377c2', 'CH': '#7f7f7f', 'CS': '#bcbd22'}
# 棒グラフを描画する
fig, ax = plt.subplots(nrows=1, ncols=len(df_by_month), figsize=(20, 5))
# 各月ごとの棒グラフを描画する
for i, (month, df_month) in enumerate(df_by_month):
# 各月ごとの "pitch_type" カラムをカウントする
pitch_type_counts = df_month['pitch_type'].value_counts()
# 各月ごとの "pitch_type" カラムを棒グラフで表示する
ax[i].bar(pitch_type_counts.index, pitch_type_counts.values, color=[colors[x] for x in pitch_type_counts.index])
# 棒グラフのタイトルを設定する
ax[i].set_title(f"{month}")
# 棒グラフの軸に各球種を設定する
ax[i].set_xticklabels(pitch_type_counts.index, rotation=45, ha='right')
# 軸のラベルを非表示にする
for i in range(len(df_by_month)):
ax[i].set_ylabel('')
# 凡例を非表示にする
for i in range(len(df_by_month)):
ax[i].legend().set_visible(False)
# グラフを表示する
plt.show()

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 円グラフを描画する
fig, ax = plt.subplots(nrows=1, ncols=len(df_by_month), figsize=(20, 20))
# 各月ごとの円グラフを描画する
for i, (month, df_month) in enumerate(df_by_month):
# 各月ごとの "pitch_type" カラムをカウントする
pitch_type_counts = df_month['pitch_type'].value_counts()
# 各月ごとの "pitch_type" カラムを円グラフで表示する
ax[i].pie(pitch_type_counts.values, labels=pitch_type_counts.index, colors=[colors[x] for x in pitch_type_counts.index])
# 円グラフのタイトルを設定する
ax[i].set_title(f"{month}")
# 棒グラフの軸に各球種を設定する
ax[i].set_xticklabels(pitch_type_counts.index, rotation=45, ha='right')
# 軸のラベルを非表示にする
for i in range(len(df_by_month)):
ax[i].set_ylabel('')
# 凡例を非表示にする
for i in range(len(df_by_month)):
ax[i].legend().set_visible(False)

# 平均値と標準偏差を行方向に結合する
df_stats = pd.concat([df_mean, df_std], axis=1)
df_stats.columns = ['release_speed 平均値', 'spin_rate 平均値', 'release_speed バラツキ', 'spin_rate バラツキ']
# 少数第二位までを表示するようにする
df_stats = df_stats.round(2)
# テーブルを表示する
display(df_stats)

# 平均値と標準偏差を行方向に結合する
df_stats = pd.concat([df_mean, df_std], axis=1)
# 列名を変更する
df_stats.columns = ['mean_release_speed', 'mean_spin_rate', 'std_release_speed', 'std_spin_rate']
# 列を入れ替える
df_stats = df_stats[['mean_release_speed', 'std_release_speed', 'mean_spin_rate', 'std_spin_rate']]
# 少数第二位までを表示するようにする
df_stats = df_stats.round(2)
# テーブルを表示する
display(df_stats)

昨日投稿のデータのコード備忘録
ダルビッシュ選手 ID 506433
https://baseballsavant.mlb.com/savant-player/yu-darvish-506433
!pip install pybaseball
from pybaseball import statcast
df = statcast(start_dt='2021-04-01', end_dt='2021-12-31')
df_darvish = df[df['pitcher'] == 506433]

df_darvish['pitch_type'].value_counts()

df_darvish['pitch_type'].value_counts().plot(kind='pie')

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 円グラフを描画する
fig, ax = plt.subplots(nrows=1, ncols=len(df_by_month), figsize=(20, 10))
# 各月ごとの円グラフを描画する
for i, (month, df_month) in enumerate(df_by_month):
pitch_type_counts = df_month['pitch_type'].value_counts()
ax[i].pie(pitch_type_counts, labels=pitch_type_counts.index, colors=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22'])
ax[i].set_title(f"{month}")
ax[i].legend(pitch_type_counts.index, title='ball')
# 軸のラベルを非表示にする
for i in range(len(df_by_month)):
ax[i].set_ylabel('')
# 凡例を非表示にする
for i in range(len(df_by_month)):
ax[i].legend().set_visible(False)

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 棒グラフを描画する
fig, ax = plt.subplots(nrows=1, ncols=len(df_by_month), figsize=(20, 5))
# 各月ごとの棒グラフを描画する
for i, (month, df_month) in enumerate(df_by_month):
# 各月ごとの "pitch_type" カラムをカウントする
pitch_type_counts = df_month['pitch_type'].value_counts()
# 各月ごとの "pitch_type" カラムを棒グラフで表示する
ax[i].bar(pitch_type_counts.index, pitch_type_counts.values, color=['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22'])
# 棒グラフのタイトルを設定する
ax[i].set_title(f"{month}")
# 棒グラフの軸に各球種を設定する
ax[i].set_xticklabels(pitch_type_counts.index, rotation=45, ha='right')
# 軸のラベルを非表示にする
for i in range(len(df_by_month)):
ax[i].set_ylabel('')
# 凡例を非表示にする
for i in range(len(df_by_month)):
ax[i].legend().set_visible(False)

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 折れ線グラフを描画する
fig, ax = plt.subplots(figsize=(10, 5))
# 各月ごとの "pitch_type" カラムをカウントする
pitch_type_counts = df_by_month['pitch_type'].value_counts()
# 各月ごとの "pitch_type" カラムを折れ線グラフで表示する
# pitch_type_countsを月をインデックスとするデータフレームに変換する
pitch_type_counts_df = pitch_type_counts.unstack(level=0)
for pitch_type, pitch_type_count in pitch_type_counts_df.iteritems():
ax.plot(pitch_type_count.index, pitch_type_count.values, label=pitch_type)
# 折れ線グラフのタイトルを設定する
ax.set_title("Pitch type count by month")
# 凡例を表示する
ax.legend()
# グラフを表示する
plt.show()#

import matplotlib.pyplot as plt
# df_darvish DataFrame の "pitch_type" カラムをカウントする
pitch_type_counts = df_darvish['pitch_type'].value_counts()
# 棒グラフを描画する
fig, ax = plt.subplots(figsize=(10, 5))
# 各月ごとの "pitch_type" カラムを棒グラフで表示する
ax.bar(pitch_type_counts.index, pitch_type_counts.values)
# 棒グラフのタイトルを設定する
ax.set_title("Pitch type count")
# 棒グラフの軸に各球種を設定する
ax.set_xticklabels(pitch_type_counts.index, rotation=45)
# 棒グラフを表示する
plt.show()

import pandas as pd
# release_speedとspin rateの平均値を算出する
df_mean = df_darvish.groupby('pitch_type')[['release_speed', 'release_spin_rate']].mean()
# release_speedとspin rateの標準偏差を算出する
df_std = df_darvish.groupby('pitch_type')[['release_speed', 'release_spin_rate']].std()
# 平均値と標準偏差を行方向に結合する
df_stats = pd.concat([df_mean, df_std], axis=1)
df_stats.columns = ['mean_release_speed', 'mean_spin_rate', 'std_release_speed', 'std_spin_rate']
print(df_stats)

print(df_darvish['pitch_type'].unique())
print(df['pitch_type'].unique())
['CU' 'SL' 'FF' 'FS' 'FC' 'SI' 'KC' 'CH' 'CS']['FF' 'SL' 'CU' 'CH' 'FS' 'SI' 'KC' 'FC' 'CS' nan 'FA' 'KN' 'EP' 'SC']
import matplotlib.pyplot as plt
# ボックスプロットを描画する
fig, ax = plt.subplots(figsize=(10, 5))
# 全投手のFFの球種のrelease_spin_rateをボックスプロットで表示する
df[df['pitch_type'] == 'FF'].boxplot(column='release_spin_rate', by='pitch_type', ax=ax, positions=[1])
# ダルビッシュのFFの球種のrelease_spin_rateをボックスプロットで表示する
df_darvish[df_darvish['pitch_type'] == 'FF'].boxplot(column='release_spin_rate', by='pitch_type', ax=ax, positions=[2])
# グラフのタイトルを設定する
ax.set_title("release_spin_rate by pitch_type (all vs. Darvish)")
# 軸のラベルを設定する
ax.set_xlabel("FF_pitch_type")
ax.set_ylabel("release_spin_rate")
# X軸のラベルを設定する
ax.set_xticklabels(['All', 'Darvish'])
# グラフを表示する
plt.show()

import matplotlib.pyplot as plt
# ボックスプロットを描画する
fig, ax = plt.subplots(figsize=(10, 5))
# 全投手のFFの球種のrelease_spin_rateをボックスプロットで表示する
df[df['pitch_type'] == 'FF'].boxplot(column='release_speed', by='pitch_type', ax=ax, positions=[1])
# ダルビッシュのFFの球種のrelease_spin_rateをボックスプロットで表示する
df_darvish[df_darvish['pitch_type'] == 'FF'].boxplot(column='release_speed', by='pitch_type', ax=ax, positions=[2])
# 全投手のFFの球種のrelease_speedの平均値を表示する
mean_all = df[df['pitch_type'] == 'FF']['release_speed'].mean()
ax.text(1, mean_all, f"mean = {mean_all:.2f}", ha='center', va='bottom')
# ダルビッシュのFFの球種のrelease_speedの平均値を表示する
mean_darvish = df_darvish[df_darvish['pitch_type'] == 'FF']['release_speed'].mean()
ax.text(2, mean_darvish, f"mean = {mean_darvish:.2f}", ha='center', va='bottom')
# グラフのタイトルを設定する
ax.set_title("release_speed by pitch_type (all vs. Darvish)")
# 軸のラベルを設定する
ax.set_xlabel("FF_pitch_type")
ax.set_ylabel("release_speed")
# X軸のラベルを設定する
ax.set_xticklabels(['All', 'Darvish'])
ax.set_ylim(70, 105)
# グラフを表示する
plt.show()

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 色を設定する
colors = {'FC': '#1f77b4', 'SL': '#ff7f0e', 'FF': '#2ca02c', 'SI': '#d62728', 'FS': '#9467bd', 'CU': '#8c564b', 'KC': '#e377c2', 'CH': '#7f7f7f', 'CS': '#bcbd22'}
# 棒グラフを描画する
fig, ax = plt.subplots(nrows=1, ncols=len(df_by_month), figsize=(20, 5))
# 各月ごとの棒グラフを描画する
for i, (month, df_month) in enumerate(df_by_month):
# 各月ごとの "pitch_type" カラムをカウントする
pitch_type_counts = df_month['pitch_type'].value_counts()
# 各月ごとの "pitch_type" カラムを棒グラフで表示する
ax[i].bar(pitch_type_counts.index, pitch_type_counts.values, color=[colors[x] for x in pitch_type_counts.index])
# 棒グラフのタイトルを設定する
ax[i].set_title(f"{month}")
# 棒グラフの軸に各球種を設定する
ax[i].set_xticklabels(pitch_type_counts.index, rotation=45, ha='right')
# 軸のラベルを非表示にする
for i in range(len(df_by_month)):
ax[i].set_ylabel('')
# 凡例を非表示にする
for i in range(len(df_by_month)):
ax[i].legend().set_visible(False)
# グラフを表示する
plt.show()

import matplotlib.pyplot as plt
# df_darvish DataFrame を月ごとにグループ分けする
df_by_month = df_darvish.groupby(df_darvish['game_date'].dt.month)
# 円グラフを描画する
fig, ax = plt.subplots(nrows=1, ncols=len(df_by_month), figsize=(20, 20))
# 各月ごとの円グラフを描画する
for i, (month, df_month) in enumerate(df_by_month):
# 各月ごとの "pitch_type" カラムをカウントする
pitch_type_counts = df_month['pitch_type'].value_counts()
# 各月ごとの "pitch_type" カラムを円グラフで表示する
ax[i].pie(pitch_type_counts.values, labels=pitch_type_counts.index, colors=[colors[x] for x in pitch_type_counts.index])
# 円グラフのタイトルを設定する
ax[i].set_title(f"{month}")
# 棒グラフの軸に各球種を設定する
ax[i].set_xticklabels(pitch_type_counts.index, rotation=45, ha='right')
# 軸のラベルを非表示にする
for i in range(len(df_by_month)):
ax[i].set_ylabel('')
# 凡例を非表示にする
for i in range(len(df_by_month)):
ax[i].legend().set_visible(False)

# 平均値と標準偏差を行方向に結合する
df_stats = pd.concat([df_mean, df_std], axis=1)
df_stats.columns = ['release_speed 平均値', 'spin_rate 平均値', 'release_speed バラツキ', 'spin_rate バラツキ']
# 少数第二位までを表示するようにする
df_stats = df_stats.round(2)
# テーブルを表示する
display(df_stats)

# 平均値と標準偏差を行方向に結合する
df_stats = pd.concat([df_mean, df_std], axis=1)
# 列名を変更する
df_stats.columns = ['mean_release_speed', 'mean_spin_rate', 'std_release_speed', 'std_spin_rate']
# 列を入れ替える
df_stats = df_stats[['mean_release_speed', 'std_release_speed', 'mean_spin_rate', 'std_spin_rate']]
# 少数第二位までを表示するようにする
df_stats = df_stats.round(2)
# テーブルを表示する
display(df_stats)

No activity yet