{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#change this cell to change season and player name\n", "season = '2005/2006'\n", "ssn = '0506'\n", "length = int(20)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Done\n" ] } ], "source": [ "import os\n", "import json\n", "from pandas.io.json import json_normalize\n", "import codecs\n", "import pandas as pd\n", "import codecs\n", "main_df = pd.DataFrame(data=None)\n", "path_match = \"\"\"C:\\\\Users\\\\koushik.r\\\\Documents\\\\open-data-master\\\\\\\\data\\\\events\\\\\"\"\" #location for play by play events\n", "for root, dirs, files in os.walk(r'C:\\Users\\koushik.r\\Documents\\open-data-master\\data\\matches'):\n", " for file in files:\n", " with open(os.path.join(root, file), \"r\") as auto:\n", " with codecs.open(root + str('\\\\') + file,encoding='utf-8') as data_file:\n", " data = json.load(data_file)\n", " df = pd.DataFrame(data=None)\n", " df = json_normalize(data, sep = \"_\")\n", " #for x in df.competition_country_name:\n", " # if x == 'Spain':\n", " # print(df.match_id)\n", " for i in range(len(df)):\n", " if df.iloc[i]['competition_country_name'] == 'Spain' and df.iloc[i]['season_season_name'] == season :\n", " match_no = df.iloc[i]['match_id'] #gets match with Spain as country\n", " match_no = str(match_no) # from int to str \n", " with codecs.open(path_match + match_no + str(r'.json'),encoding=\"utf8\") as event_file: #open the respective file\n", " df_match = json.load(event_file)\n", " df_match2 = pd.DataFrame(data=None)\n", " df_match2 = json_normalize(df_match,sep=\"_\") \n", " \n", " main_df = main_df.append(df_match2,ignore_index=True,sort=False) \n", "print('Done')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "Player = main_df.query('player_id == 5503 & type_id ==43 & play_pattern_id ==1 & duration >= 1.50')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "player_name = Player.player_name.iloc[0]\n", "#df[['a','b']]\n", "Player = Player [['location','carry_end_location']]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "from math import sqrt\n", "distance= []\n", "for i in range(len(Player)):\n", " distance.append(sqrt((Player.iloc[i]['carry_end_location'][0] - Player.iloc[i]['location'][0])**2 + ((Player.iloc[i]['carry_end_location'][1] - Player.iloc[i]['location'][1])**2)))\n", " #using distance formula above (sqrt((x2-x1)^2 + (y2-y1)^2))\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "Player['dribble_distance'] = distance" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
locationcarry_end_locationdribble_distance
2791[81.9, 77.4][85.6, 66.6]11.416217
3160[78.7, 7.3][115.6, 22.8]40.023243
3765[45.5, 4.5][48.2, 6.4]3.301515
4811[43.1, 40.0][50.3, 28.4]13.652839
5012[77.0, 65.6][97.8, 53.3]24.164644
\n", "
" ], "text/plain": [ " location carry_end_location dribble_distance\n", "2791 [81.9, 77.4] [85.6, 66.6] 11.416217\n", "3160 [78.7, 7.3] [115.6, 22.8] 40.023243\n", "3765 [45.5, 4.5] [48.2, 6.4] 3.301515\n", "4811 [43.1, 40.0] [50.3, 28.4] 13.652839\n", "5012 [77.0, 65.6] [97.8, 53.3] 24.164644" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Player.head()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def draw_pitch(ax):\n", " # focus on only half of the pitch\n", " #Pitch Outline & Centre Line\n", " Pitch = Rectangle([0,0], width = 120, height = 80, fill = False)\n", " #Left, Right Penalty Area and midline\n", " LeftPenalty = Rectangle([0,22.3], width = 14.6, height = 35.3, fill = False)\n", " RightPenalty = Rectangle([105.4,22.3], width = 14.6, height = 35.3, fill = False)\n", " midline = ConnectionPatch([60,0], [60,80], \"data\", \"data\")\n", "\n", " #Left, Right 6-yard Box\n", " LeftSixYard = Rectangle([0,32], width = 4.9, height = 16, fill = False)\n", " RightSixYard = Rectangle([115.1,32], width = 4.9, height = 16, fill = False)\n", "\n", "\n", " #Prepare Circles\n", " centreCircle = plt.Circle((60,40),8.1,color=\"white\", fill = False)\n", " centreSpot = plt.Circle((60,40),0.71,color=\"white\")\n", " #Penalty spots and Arcs around penalty boxes\n", " leftPenSpot = plt.Circle((9.7,40),0.71,color=\"white\")\n", " rightPenSpot = plt.Circle((110.3,40),0.71,color=\"white\")\n", " leftArc = Arc((9.7,40),height=16.2,width=16.2,angle=0,theta1=310,theta2=50,color=\"white\")\n", " rightArc = Arc((110.3,40),height=16.2,width=16.2,angle=0,theta1=130,theta2=230,color=\"white\")\n", " \n", " element = [Pitch, LeftPenalty, RightPenalty, midline, LeftSixYard, RightSixYard, centreCircle, \n", " centreSpot, rightPenSpot, leftPenSpot, leftArc, rightArc]\n", " for i in element:\n", " ax.add_patch(i)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'plt.rcParams.update({\\n \"lines.color\": \"white\",\\n \"patch.edgecolor\": \"white\",\\n \"text.color\": \"black\",\\n \"axes.facecolor\": \"white\",\\n \"axes.edgecolor\": \"lightgray\",\\n \"axes.labelcolor\": \"white\",\\n \"xtick.color\": \"white\",\\n \"ytick.color\": \"white\",\\n \"grid.color\": \"lightgray\",\\n \"figure.facecolor\": \"black\",\\n \"figure.edgecolor\": \"black\",\\n \"savefig.facecolor\": \"black\",\\n \"savefig.edgecolor\": \"black\"})'" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "'''plt.rcParams.update({\n", " \"lines.color\": \"white\",\n", " \"patch.edgecolor\": \"white\",\n", " \"text.color\": \"black\",\n", " \"axes.facecolor\": \"white\",\n", " \"axes.edgecolor\": \"lightgray\",\n", " \"axes.labelcolor\": \"white\",\n", " \"xtick.color\": \"white\",\n", " \"ytick.color\": \"white\",\n", " \"grid.color\": \"lightgray\",\n", " \"figure.facecolor\": \"black\",\n", " \"figure.edgecolor\": \"black\",\n", " \"savefig.facecolor\": \"black\",\n", " \"savefig.edgecolor\": \"black\"})'''" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6IAAAIcCAYAAADsTxM2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xm8lnP+x/HX2SqlRIlKKgeVUBrJ0ji2Cv0aZM1SmsUy9pFlMAyGQcY2lmGYCJV9SJYzzVS2VIZCTVGdk9Ku/RRavr8/rpxhVOdU97mv69z36/l4fB4493Vf1/u+bnJ9zvW5risHCEiSJEmSlCa5cQeQJEmSJGUXG1FJkiRJUlrZiEqSJEmS0spGVJIkSZKUVjaikiRJkqS0shGVJEmSJKWVjagk6Qc6d+7M5MmTq3w7AwYM4Oabb67y7QAUFRUxc+bMSi1bq1Yt3n33XY455pgqTpVan376KUVFRXHHKPfQQw9x3XXXbdZ7XnvtNXr37p3yZSVJyRQsy7Ks7KuSkpJw5JFHxrb9AQMGhJtvvnmTyxQVFYUQQrjiiiu2altFRUVh5syZlVr2iSeeCCeccMIWbyeEEF544YUf/HzfffcNIYQwYsSI2PZ3x44dw7Bhw8LixYvDV199FcaMGRPOPvvstGx7Q/v/hhtuCE8++WRs+8OyLMuKtzwjKklKrD59+vDVV1/Rp0+fKttGXl7ej7b50ksvbfH65s+fz8EHH8wOO+zwg3VOmTJli9e5tQ488ED+9a9/MWrUKHbffXcaNGjA+eefX+3O+kqSMoeNqCTpB/53jLV169aMGDGCxYsX8+mnn9KjR4/y1wYMGMD999/Pq6++yrJly3j//ffZbbfdyl9v1aoVxcXFfPXVV0yePJmTTz650jm22WYbTjrpJC644AL22GMPfvKTn5S/1rx5c0II9O7dmxkzZrBgwQKuueaa8tdr1arFgAEDWLRoERMnTqRjx44/WHdJSQlXXnklEyZMoKysjLy8PBo3bszzzz/P/PnzmT59OhdddFH58h07dmTcuHEsXbqUuXPn8qc//Wmjub/99lv+/ve/c9pppwGQm5vLKaecwtNPP/2D5Ta1b4455hgmTpzIsmXLmDVrFpdffjkADRo0YOjQoSxevJivvvqKt956i5ycnPLPdOSRR24wU//+/XniiSe44447+OqrrwD48MMPOfXUU4GoUX777bd/8J4QAoWFheX7884776S0tJQlS5bw9ttvU6tWLQAOOeQQ3n33XRYvXswXX3xR/kuD70ava9euzeuvv06TJk1Yvnw5y5cvp1evXlxzzTWceuqpLF++nPHjxwMwYsQIfvGLX/wgU//+/Vm0aBHTp0/n6KOPLs/3/WUlSdWPjagkaaPy8/MZOnQoxcXFNGrUiIsuuoinn36aPffcs3yZXr16ceONN7L99tszdepUbrnlFgBq167NP/7xDwYNGkSjRo3o1asXDz74IHvttVeltn3iiSeyYsUKnnvuOd58880NXg/YuXNnWrVqxZFHHsn1119P69atAbjhhhsoLCyksLCQbt26bfCMaq9evejevTv169dn3bp1DB06lAkTJtC0aVOOPPJILr30Urp27QrAvffey7333st2221HYWEhzz777CazDxw4sDxvt27dmDhxIrNnzy5/vaJ989hjj3HuuedSr1499t57b/71r38BcPnllzNr1ix23HFHdtppJ6655hpCCJvMss0223DQQQfx/PPPb3K5Tbnzzjv5yU9+Un6m98orr2TdunU0a9aM119/nT//+c/suOOOtG/fvryp/M7KlSs55phjmD17NnXr1qVu3boMHjyYW2+9lWeeeYa6devSvn37DW63U6dOTJkyhYYNG3LHHXfw2GOPbfFnkCQli42oJGmjDjzwQLbddltuu+02Vq9ezYgRI3j11Vfp1atX+TIvvvgi48aNY+3atTz99NPlTcX//d//UVpayuOPP87atWv56KOPeOGFFzjppJMqte0+ffrwzDPPsG7dOgYNGkSvXr3Iz8//wTI33ngjX3/9NR9//DETJkygXbt2AJxyyinccsstLF68mFmzZnHffff9aP333Xcfs2bN4uuvv6Zjx47suOOO3HzzzaxevZqSkhL++te/lp/VXL16dflIa1lZGWPGjNlk9tGjR7PDDjuw55570rt3bwYOHPiD1yvaN6tXr2avvfaibt26LFmyhI8++qj8540bN6Z58+asWbOGd955p8L9uP3225OXl8ecOXMqXHZDcnJy+PnPf84ll1zC7NmzWbduHaNHj+bbb7/ljDPOYPjw4QwZMoQ1a9awaNEiJkyYsEXb2ZAZM2bw6KOPsm7dOp544gmaNGnCTjvtlLL1S5LiYyMqSdqo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J9dcc0266667Um1tbe69W5ZVzDrppJPSc889V7W7aVd7ED3vvPPSpEmTuuwA++5b2ycYl2Byis1/8u5nZfWBFMF5+wL0Uonqn+C6BNMSjChAP92/jjjiiDRz5sw0bNiwDt3P36WL/74YRAv4TSliP0WojrwnP/vZz9LEiRPTOuusk3vflmUVu372s5+lf/7zn1UZhqo5iB533HFpxowZadNNN829l+qpTyWYmeJMzoEF6KdlbZSgLsEnCtBLJWpkgpcSXJ16zlE0xahTTjkl1dXVpS222KLd9/F36eK/LwbRAn5TithPEaq978no0aPTk08+mdZf37O7LMtaddXW1qabbrop3XPPPalv376599ORqtYgevzxx6fZs2enXXbZJfdeqq/6J/hpilHHUQmKMuunV4pNli4uQC9dXX0S/CjBqwmOKEA/PbNOP/309Pzzz6f3ve997VG1if8AACAASURBVLre36WL/74YRAv4TSliP0Wo9rwnZ511VpoyZUoaOLCIfym2LKuo1atXr3TjjTeme++9N/Xr1y/3ftpb1RhEP/WpT6VZs2alnXbaKfdeqrt2SHB/gicS7FWAfi5JcHcqTjDuqtoxxQ7Gf00x4pt3Pz27LrjggvTvf/87bbjhhqu81t+li/++GEQL+E0pYj9FqFW9J9///vfTiy++mAYPHpx7r5ZlVV/V1tam66+/Po0bN65qwmi1BdHPfvaz6dVXX0077LBD7r10n/psipG6X6f8gtIJKaasrjocVE/VJPhWipHnEwvQj1Wuiy++OD399NNpyy23XOl1/i5d/PfFIFrAb0oR+ylCtfWerLXWWunmm29OEydO9KxQy7I6VbW1tenXv/51mjRpUtpkk01y72dVVU1B9Oyzz04zZsxIw4cPz72X7lfrJrg0wesJvpqyHZXcKUVY27UA70NX1RYJ7kswPsGQAvRjtazTTjstvfrqq2nEiLY3jPJ36eK/LwbRAn5TithPEaq192TjjTdODz/8cLr55purcqMRy7KKWeeff3565ZVX0gc+8IHce1lZVUMQXXPNNdN1112XJk+e7IyVitdOCR5I8FiCD2bwfOun2D32swV47V1Vn08RrM9J3W+acfeqww8/PM2ZMyd96lOfavXr/i7dehXpfTGIFvCbUsR+ilAt35Odd945TZ8+PY0ePTr33izL6n519NFHpzlz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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from matplotlib.patches import Arc, Rectangle, ConnectionPatch\n", "from matplotlib.offsetbox import OffsetImage\n", "plt.style.use('dark_background')\n", "fig=plt.figure() #set up the figures\n", "fig.set_size_inches(16, 9)\n", "ax=fig.add_subplot(1,1,1)\n", "draw_pitch(ax) #overlay our different objects on the pitch\n", "plt.ylim(-2, 82)\n", "plt.xlim(-2, 122)\n", "plt.axis('off')\n", "y_cary_end = 0\n", "y_loc = 0\n", "for i in range(len(Player)):\n", " # # y - y' = -2(y' +c) reflection \n", " #mirror image of a point https://math.stackexchange.com/questions/1013230/how-to-find-coordinates-of-reflected-point\n", " y_cary_end = -2*(Player.iloc[i]['carry_end_location'][1] - 40) + Player.iloc[i]['carry_end_location'][1] \n", " y_loc = -2*(Player.iloc[i]['location'][1] - 40) + Player.iloc[i]['location'][1] \n", " if Player.iloc[i]['carry_end_location'][0] >= 90 and Player.iloc[i]['dribble_distance'] >= length:\n", " ax.annotate(\"\", xy = (Player.iloc[i]['carry_end_location'][0],y_cary_end), xycoords = 'data',\n", " xytext = (Player.iloc[i]['location'][0],y_loc ), textcoords = 'data',\n", " arrowprops=dict(arrowstyle=\"->\",connectionstyle=\"arc3\", color = \"blue\"),)\n", " ax.set_title(player_name)\n", " ax.text(40, -5, 'dribbles '+ season, fontsize=14)\n", "fname = 'C:\\\\Users\\\\koushik.r\\\\Desktop\\\\Messi data\\\\'+ player_name + str(' dribbles ')+ str(ssn)+'.png'\n", "plt.savefig(fname,orientation='landscape')\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" } }, "nbformat": 4, "nbformat_minor": 2 }