In [1]:
%matplotlib inline
import seaborn as sns
import pandas as pd
from retrosheet_controller import RetroSheetDataController
from retrosheet_util import RetroSheetUtil
from analyze_batter import AnalyzeBatter
import matplotlib.pyplot as plt


/usr/local/opt/pyenv/versions/py3.5.0_hatteberg/lib/python3.5/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.
  warnings.warn(self.msg_depr % (key, alt_key))

In [2]:
# Joey Votto VS Ichiro Suzukiお散歩対決
client = RetroSheetDataController()
analyzer = AnalyzeBatter()
votto_df_atbat, ichiro_df_atbat = {}, {}
votto_df_walks, ichiro_df_walks = {}, {}
for year in range(2009, 2015): # 2009-2014シーズンまでが対象
    votto_df_atbat[year] = client.batter_event_by_at_bat('Joey', 'Votto', year)
    votto_df_walks[year] = client.batter_event_by_walk('Joey', 'Votto', year)
    ichiro_df_atbat[year] = client.batter_event_by_at_bat('Ichiro', 'Suzuki', year)
    ichiro_df_walks[year] = client.batter_event_by_walk('Ichiro', 'Suzuki', year)

In [3]:
# ボットVSイチローの年間四球数(月ごと&Total)
 
graph_data_list = {}
for df_walks in (
    {"name": "Joey Votto", "data": votto_df_walks}, 
    {"name": "Ichiro Suzuki", "data": ichiro_df_walks},
):
    graph_data = {}
    for year, walks in df_walks["data"].items():
        monthly_walks, walk_counts = analyzer.monthly_walks(walks)
        graph_data["{year}({ball})".format(year=year, ball=walk_counts)] = monthly_walks 
    df = pd.DataFrame(graph_data)
    graph_data_list[df_walks['name']] = df

In [4]:
# Ichiro Suzuki
graph_data_list['Ichiro Suzuki'].plot(kind='bar', ylim=(0, 30), title='Osan-po({name})'.format(name='Ichiro Suzuki'))


Out[4]:
<matplotlib.axes._subplots.AxesSubplot at 0x1069a82e8>

In [5]:
# Joey Votto
graph_data_list['Joey Votto'].plot(kind='bar', ylim=(0, 30), title='Osan-po({name})'.format(name='Joey Votto'))


Out[5]:
<matplotlib.axes._subplots.AxesSubplot at 0x106a5de10>

In [6]:
# ボットVSイチローのマルチ散歩対決(月ごと&Total)
 
graph_data_list = {}
for df_walks in (
    {"name": "Joey Votto", "data": votto_df_walks}, 
    {"name": "Ichiro Suzuki", "data": ichiro_df_walks},
):
    graph_data = {}
    for year, walks in df_walks["data"].items():
        monthly_walks, walk_counts = analyzer.monthly_walks_multi(walks)
        graph_data["{year}({ball})".format(year=year, ball=walk_counts)] = monthly_walks 
    df = pd.DataFrame(graph_data)
    graph_data_list[df_walks['name']] = df

In [7]:
# Ichiro Suzuki
graph_data_list['Ichiro Suzuki'].plot(kind='bar', ylim=(0, 10), title='Multi Osan-po({name})'.format(name='Ichiro Suzuki'))


Out[7]:
<matplotlib.axes._subplots.AxesSubplot at 0x106d46550>

In [8]:
# Joey Votto
graph_data_list['Joey Votto'].plot(kind='bar', ylim=(0, 10), title='Multi Osan-po({name})'.format(name='Joey Votto'))


Out[8]:
<matplotlib.axes._subplots.AxesSubplot at 0x106eefd68>

In [9]:
# ボットさんの内野のポップフライ数を数える
fly, pop_fly = {}, {}

for year, atbat in votto_df_atbat.items():
    monthly_fly = analyzer._monthly_counts()
    monthly_pop = analyzer._monthly_counts()
    fly_cnt, pop_cnt = 0, 0
    for i, row in atbat.iterrows():
        month =  int(str(row['game_dt'])[4:6])
        # フライっぽいアウト(と思われる)打球をカウント
        # event cdがアウトかつ、batted ballがラインドライブかフライ
        if row['event_cd'] == 2 and row['battedball_cd'] in ('L', 'F'):
            monthly_fly[month] += 1
            fly_cnt += 1
            # 内野に上がったフライの数
            if int(row['event_tx'][0:1]) < 7:
                monthly_pop[month] += 1
                pop_cnt += 1
    fly["{year}(Fly:{cnt})".format(year=year, cnt=fly_cnt)] = monthly_fly
    pop_fly["{year}(Pop Fly:{cnt})".format(year=year, cnt=pop_cnt)] = monthly_pop
            
df = pd.DataFrame(fly)
df.plot(kind='bar', ylim=(0, 40), title='Fly Count({name})'.format(name='Joey Votto'))
df = pd.DataFrame(pop_fly)
df.plot(kind='bar', ylim=(0, 5), title='PopFly Count({name})'.format(name='Joey Votto'))


Out[9]:
<matplotlib.axes._subplots.AxesSubplot at 0x107415dd8>

In [ ]: