{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# JNB LAB: After-School Program Demo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{note}\n", "One way to wrap-up an after-school program is to have the students do a combined presentation showing several things they learned throughout the program. It is a good idea to practice the presentations at least once or twice in advance.\n", ":::" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Today our class will demonstrate several things which can be done with Jupyter Notebooks.\n", "\n", "First we load standard libraries for analyzing and plotting data.\n", " " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np \n", "import pandas as pd \n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} City of Chicago budget\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## DEMO 1: City of Chicago Budget\n", "We will make a piechart of the City of Chicago budget." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1) First let's look at the 2022 City of Chicago revenue details." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2) Next let's read an Excel sheet with the summary of the 2023 budget." ] }, { "cell_type": "code", "execution_count": 2, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
EXPENSE2023 BUDGET
0Finance and Administration688251735
1Infrastructure1544641397
2Public Safety2711251614
3Community Services293957760
4City Development174766005
5Regulatory74509317
6Legislative and Elections92114035
7General Financing7761542137
\n", "
" ], "text/plain": [ " EXPENSE 2023 BUDGET\n", "0 Finance and Administration 688251735\n", "1 Infrastructure 1544641397\n", "2 Public Safety 2711251614\n", "3 Community Services 293957760\n", "4 City Development 174766005\n", "5 Regulatory 74509317\n", "6 Legislative and Elections 92114035\n", "7 General Financing 7761542137" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "budget=pd.read_excel('ChicagoBudget.xlsx')\n", "budget" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3) A pie chart will show us the proportions." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(3,3)) #you can adjust the figsize (5,5)=(length,width)\n", "plt.rcParams['font.size'] = 3 #fontsize\n", "budget_items = budget[\"EXPENSE\"] #categories\n", "budget_amounts = budget[\"2023 BUDGET\"] #amounts\n", "total=sum(budget_amounts)\n", "ax=plt.pie(budget_amounts,labels=budget_items,autopct=lambda p: '${:.0f}'.format(p * total / 100)) #make pie chart autopct='%1.0f%%'\n", "plt.gca().set_title('Budget Breakdown $'+str(total)+' (13+ billion) in Expenses',size=5) #add a title\n", "fig.savefig('Budget.png') #save the piechart to a file Budget.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{admonition} Exercise\n", "\n", "Enlarge the size of the piechart so it is easier to read. Make sure you enlarge the fontsize as well as the chart size.\n", ":::" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} pixel images\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Demo 2 Pixel Images\n", "We can increase the resolution of images by increasing the number of pixels." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "# PACKAGE: DO NOT EDIT THIS CELL\n", "%matplotlib inline\n", "from ipywidgets import interact\n", "import cv2, os" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "def makepixelimage(folder, N):\n", "\n", " directory = folder\n", "\n", " # A data structure called a dictionary is used to store the image data and the dataframes we'll make from them.\n", " imgs = {}\n", " dfs = {}\n", "\n", " # Specify the pixel image size \n", " dsize = (N, N)\n", "\n", " # This will iterate over every image in the directory given, read it into data, and create a \n", " # dataframe for it. Both the image data and its corresponding dataframe are stored.\n", " # Note that when being read into data, we interpret the image as grayscale. \n", " pos = 0\n", " for filename in os.listdir(directory):\n", " f = os.path.join(directory, filename)\n", " # checking if it is a file\n", " if os.path.isfile(f):\n", " imgs[pos] = cv2.imread(f, 0) # image data\n", " imgs[pos] = cv2.resize(imgs[pos], dsize)\n", " dfs[pos] = pd.DataFrame(imgs[pos]) # dataframe\n", " pos += 1\n", " return plt.imshow(imgs[0], cmap=\"gray\")\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAGTCAYAAADp6S9cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAN7UlEQVR4nO3dz4vUdeDH8feuGx9b0ukSkjUiFEIQRGgEBl2qP6Ag6da1oCgvwZw6dNhTYBkIHYKOJd06BJ26bNRCP6yIIpIaWwLTbcY0P667+718W76ybs28vjN+ZurxgM9heQ+zL3TtyWfGnJmNjY2NAgCB2aYHADC9RASAmIgAEBMRAGIiAkBMRACIiQgAMREBIDY3jiddX18vy8vLZdeuXWVmZmYc3wKAMdrY2CgXLlwoe/fuLbOz299vjCUiy8vLpd1uj+OpAbiBut1uufPOO7c9H0tEdu3aVUop5ZlnnilVVY3jW4zNzTff3PSEyI4dO5qeEKvruukJkatXrzY9ITI3N5Y/9vyNafzzWdd1OXbs2OZ/z7czlp+mv17Cqqpq6iKyc+fOpidEpvGHdNpN66+5iNx40/qzUkr5x7ckvLEOQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIiQgAsYE/bPmdd94ply9fLg899FC5++67rzmr67rUdb35db/fH91CACbWwHciFy9eLEeOHClLS0tbzhYWFkqr1dq82u32SEcCMJkGjsj8/Hx59913y6FDh7acdTqd0uv1Nq9utzvSkQBMpoFfznrqqae2PauqqlRVNZJBAEwPb6wDEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJAbODPWP+v+PPPP5ueEJmbm97fyvX19aYnRH788cemJ0See+65pidEzp492/SE2Mcff9z0hKHVdT3Q49yJABATEQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgNnBEFhcXy7Fjx657Vtd16ff711wA/PsNHJHDhw+XW2655bpnCwsLpdVqbV7tdntkAwGYXANH5Ntvvy2nTp267l1Gp9MpvV5v8+p2uyMdCcBkmhv0gffcc095/fXXr3tWVVWpqmpkowCYDt5YByAmIgDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgNjAn7Ge2NjYKBsbG+P8FiO3Y8eOpidE1tfXm54QW1tba3pCZGlpqekJkYcffrjpCZHXXnut6QmxDz74oOkJQxv0z6U7EQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxOYGfeDi4mL57LPPyuOPP17uuOOOa87qui51XW9+3e/3R7cQgIk18J3I4cOHy8zMTGm1WlvOFhYWSqvV2rza7fZIRwIwmQaOyPHjx0sppayurm4563Q6pdfrbV7dbnd0CwGYWAO/nPX8889ve1ZVVamqaiSDAJge3lgHICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEJsb65PPzZW5ubF+C/4F3nrrraYnRL766qumJ0SeffbZpidEVlZWmp4Qu/nmm5ueMLS1tbWBHudOBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIzQ36wK+//rosLi6WBx98sNx3333XnNV1Xeq63vy63++PbiEAE2vgO5EDBw6UlZWVMj8/v+VsYWGhtFqtzavdbo90JACTaeCIfPPNN2XPnj3l/PnzW846nU7p9XqbV7fbHelIACbTwC9n3X///eX++++/7llVVaWqqpGNAmA6eGMdgJiIABATEQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQGxunE++trZW1tbWxvkt+F87duxoekLst99+a3pC5Pvvv296QuSFF15oekJkcXGx6Qmx7777rukJQ6vrunz++ef/+Dh3IgDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJAbKiIPPnkk+Xq1avj2gLAlJkb9IEffvhhOXjw4HXP6roudV1vft3v9///ywCYeAPfiZw7d66cPXu2/PTTT1vOFhYWSqvV2rza7fZIRwIwmQaOyFNPPVVeffXVctddd20563Q6pdfrbV7dbnekIwGYTAO/nPV3qqoqVVWN4qkAmCL+dhYAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJATEQAiIkIADERASAmIgDERvIZ69uZxs9eX19fb3pC5Jlnnml6QuzZZ59tekLko48+anpC5NSpU01PiDz66KNNT4h99tlnTU8Y2pUrVwZ6nDsRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJATEQAiIkIADERASAmIgDE5gZ94IkTJ0q73S6PPfZYqarqmrO6rktd15tf9/v90S0EYGINfCfSbrfL6upquXjx4pazhYWF0mq1Nq92uz3SkQBMpoEjcvvtt5eVlZVy5syZLWedTqf0er3Nq9vtjnQkAJNp4JezDh48WA4ePHjds6qqtrzEBcC/nzfWAYiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBIDbwZ6wn/vjjj7K6ujrObzFyL730UtMTIjfddFPTE2Ivvvhi0xMiR48ebXpC5Isvvmh6QuTs2bNNT4h98sknTU8Y2tra2kCPcycCQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBIDY3KAPPHnyZJmdnS2PPPJIufXWW685q+u61HW9+XW/3x/ZQAAm18B3Ip9++mmZnZ0tly5d2nK2sLBQWq3W5tVut0c6EoDJNHBE7r333nLlypVy+vTpLWedTqf0er3Nq9vtjnQkAJNp4Jeznn766W3PqqoqVVWNZBAA08Mb6wDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiMxsbGxujftJ+v19arVbpdDpl586do376sbrpppuanhDZtWtX0xP+c3799demJ0Ruu+22pidE1tfXm54Q+/PPP5ueMLTLly+XV155pfR6vbJ79+5tH+dOBICYiAAQExEAYiICQExEAIiJCAAxEQEgJiIAxEQEgJiIABATEQBiIgJATEQAiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIDRyRpaWlcvTo0fLzzz9vOavruvT7/WsuAP79Bo7IAw88UPbv31/27du35WxhYaG0Wq3Nq91uj3QkAJNp4IgsLy9vG4dOp1N6vd7m1e12RzYQgMk1N+gD9+7dW5544onrnlVVVaqqGtkoAKaDN9YBiIkIADERASAmIgDERASAmIgAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQExEAYiICQExEAIiJCAAxEQEgNvBnrA9jY2OjlFJKXdfjePqxWltba3pCZG5uLL+V/I1p/PkupZTLly83PSGyvr7e9ITYNP6a//Xz/dd/z7czs/FPjwicOXOmtNvtUT8tADdYt9std95557bnY4nI+vp6WV5eLrt27SozMzMjfe5+v1/a7Xbpdrtl9+7dI33ucZvW7XbfWHbfeNO6fZy7NzY2yoULF8revXvL7Oz273yM5TWQ2dnZvy3XKOzevXuqfrP/r2ndbveNZfeNN63bx7W71Wr942O8sQ5ATEQAiE1dRKqqKi+//HKpqqrpKUOb1u1231h233jTun0Sdo/ljXUA/hum7k4EgMkhIgDERASA2NRF5J133ilvv/12+eGHH5qeMrTFxcVy7NixpmcMbXFxsbzxxhvll19+aXrKUL7++uvy5ptvli+//LLpKUN78skny9WrV5ueMbQTJ06U999/f+r+SZiTJ0+W9957r/z+++9NTxnK0tJSOXr0aPn5558b2zB1Ebl48WI5cuRIWVpaanrK0A4fPlxuueWWpmcM7fDhw2VmZmag//Fokhw4cKCsrKyU+fn5pqcM5cMPPywHDx5sekak3W6X1dXVcvHixaanDOXTTz8ts7Oz5dKlS01PGcoDDzxQ9u/fX/bt29fYhqmLyPz8fHn33XfLoUOHmp4ytG+//bacOnWq9Pv9pqcM5fjx46WUUlZXVxteMpxvvvmm7Nmzp5w/f77pKUM5d+5cOXv2bPnpp5+anjK022+/vaysrJQzZ840PWUo9957b7ly5Uo5ffp001OGsry83Pi/U+iv+AIQm7o7EQAmh4gAEBMRAGIiAkBMRACIiQgAMREBICYiAMREBICYiAAQ+x/VG+SD+HMDIgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "makepixelimage(\"images\", 8)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{admonition}Exercise\n", "Increase the image resolution to 16x16 and then 32x32 so the image will become much clearer.\n", ":::\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} NFL player positions\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## DEMO 3: Track NFL Player Positions\n", "We will plot the movement of two players step by step in a given play\n", "Dataset: NFL_play.xlsx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1) Import special libraries." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "import matplotlib.animation as animation\n", "from matplotlib.animation import FuncAnimation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2) Read the Player Tracking Data" ] }, { "cell_type": "code", "execution_count": 8, "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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0game_playgame_keyplay_idnfl_player_iddatetimestepteampositionjersey_numberx_positiony_positionspeeddistancedirectionorientationaccelerationsa
0058580_001136585801136448302021-10-10T21:08:20.900Z-108awayCB2261.5942.601.110.11320.33263.930.71-0.64
1158580_001136585801136423552021-10-10T21:08:20.900Z-108awayNT7559.6324.330.100.017.98227.030.410.27
2258580_001136585801136433302021-10-10T21:08:20.900Z-108awayILB5560.6730.893.190.32334.89303.311.95-1.73
3358580_001136585801136524252021-10-10T21:08:20.900Z-108homeWR8856.5942.860.130.01158.7898.310.320.02
4458580_001136585801136432932021-10-10T21:08:20.900Z-108homeRB2151.1126.420.140.01144.5878.520.520.51
5558580_001136585801136400312021-10-10T21:08:20.900Z-108awayFS2370.5322.030.320.03285.68287.440.280.27
6658580_001136585801136412422021-10-10T21:08:20.900Z-108homeG7057.3324.800.030.01328.0457.380.070.07
7758580_001136585801136529382021-10-10T21:08:20.900Z-108homeT7857.2723.470.190.02356.5087.290.10-0.10
8858580_001136585801136423472021-10-10T21:08:20.900Z-108homeWR1956.2310.680.070.01132.91123.390.19-0.14
9958580_001136585801136461352021-10-10T21:08:20.900Z-108awayOLB5959.9021.141.580.16218.10278.390.480.22
101058580_001136585801136434242021-10-10T21:08:20.900Z-108homeQB457.3126.270.070.01207.2593.250.110.07
111158580_001136585801136433512021-10-10T21:08:20.900Z-108awayCB2464.3910.890.800.08130.49309.040.44-0.44
121258580_001136585801136455322021-10-10T21:08:20.900Z-108homeTE8957.1630.990.070.0139.61100.730.51-0.14
131358580_001136585801136461192021-10-10T21:08:20.900Z-108homeG5257.3628.020.080.01127.21241.420.050.04
141458580_001136585801136370822021-10-10T21:08:20.900Z-108homeT7757.1629.540.120.01145.2785.160.070.01
151558580_001136585801136538762021-10-10T21:08:20.900Z-108awayDE9159.6522.710.230.02268.69271.270.23-0.23
161658580_001136585801136534792021-10-10T21:08:20.900Z-108awayOLB5159.4729.520.240.02296.78257.941.120.26
171758580_001136585801136526632021-10-10T21:08:20.900Z-108awayILB4863.2527.500.510.05183.62253.710.310.31
181858580_001136585801136462062021-10-10T21:08:20.900Z-108homeTE8657.3722.120.370.04127.8563.630.690.62
191958580_001136585801136524442021-10-10T21:08:20.900Z-108awayFS2972.1931.460.610.0611.77247.690.63-0.33
202058580_001136585801136478002021-10-10T21:08:20.900Z-108awayDE9759.4826.810.230.01346.84247.161.290.90
212158580_001136585801136525542021-10-10T21:08:20.900Z-108homeC6358.1826.520.160.02357.62102.550.600.58
\n", "
" ], "text/plain": [ " Unnamed: 0 game_play game_key play_id nfl_player_id \\\n", "0 0 58580_001136 58580 1136 44830 \n", "1 1 58580_001136 58580 1136 42355 \n", "2 2 58580_001136 58580 1136 43330 \n", "3 3 58580_001136 58580 1136 52425 \n", "4 4 58580_001136 58580 1136 43293 \n", "5 5 58580_001136 58580 1136 40031 \n", "6 6 58580_001136 58580 1136 41242 \n", "7 7 58580_001136 58580 1136 52938 \n", "8 8 58580_001136 58580 1136 42347 \n", "9 9 58580_001136 58580 1136 46135 \n", "10 10 58580_001136 58580 1136 43424 \n", "11 11 58580_001136 58580 1136 43351 \n", "12 12 58580_001136 58580 1136 45532 \n", "13 13 58580_001136 58580 1136 46119 \n", "14 14 58580_001136 58580 1136 37082 \n", "15 15 58580_001136 58580 1136 53876 \n", "16 16 58580_001136 58580 1136 53479 \n", "17 17 58580_001136 58580 1136 52663 \n", "18 18 58580_001136 58580 1136 46206 \n", "19 19 58580_001136 58580 1136 52444 \n", "20 20 58580_001136 58580 1136 47800 \n", "21 21 58580_001136 58580 1136 52554 \n", "\n", " datetime step team position jersey_number x_position \\\n", "0 2021-10-10T21:08:20.900Z -108 away CB 22 61.59 \n", "1 2021-10-10T21:08:20.900Z -108 away NT 75 59.63 \n", "2 2021-10-10T21:08:20.900Z -108 away ILB 55 60.67 \n", "3 2021-10-10T21:08:20.900Z -108 home WR 88 56.59 \n", "4 2021-10-10T21:08:20.900Z -108 home RB 21 51.11 \n", "5 2021-10-10T21:08:20.900Z -108 away FS 23 70.53 \n", "6 2021-10-10T21:08:20.900Z -108 home G 70 57.33 \n", "7 2021-10-10T21:08:20.900Z -108 home T 78 57.27 \n", "8 2021-10-10T21:08:20.900Z -108 home WR 19 56.23 \n", "9 2021-10-10T21:08:20.900Z -108 away OLB 59 59.90 \n", "10 2021-10-10T21:08:20.900Z -108 home QB 4 57.31 \n", "11 2021-10-10T21:08:20.900Z -108 away CB 24 64.39 \n", "12 2021-10-10T21:08:20.900Z -108 home TE 89 57.16 \n", "13 2021-10-10T21:08:20.900Z -108 home G 52 57.36 \n", "14 2021-10-10T21:08:20.900Z -108 home T 77 57.16 \n", "15 2021-10-10T21:08:20.900Z -108 away DE 91 59.65 \n", "16 2021-10-10T21:08:20.900Z -108 away OLB 51 59.47 \n", "17 2021-10-10T21:08:20.900Z -108 away ILB 48 63.25 \n", "18 2021-10-10T21:08:20.900Z -108 home TE 86 57.37 \n", "19 2021-10-10T21:08:20.900Z -108 away FS 29 72.19 \n", "20 2021-10-10T21:08:20.900Z -108 away DE 97 59.48 \n", "21 2021-10-10T21:08:20.900Z -108 home C 63 58.18 \n", "\n", " y_position speed distance direction orientation acceleration sa \n", "0 42.60 1.11 0.11 320.33 263.93 0.71 -0.64 \n", "1 24.33 0.10 0.01 7.98 227.03 0.41 0.27 \n", "2 30.89 3.19 0.32 334.89 303.31 1.95 -1.73 \n", "3 42.86 0.13 0.01 158.78 98.31 0.32 0.02 \n", "4 26.42 0.14 0.01 144.58 78.52 0.52 0.51 \n", "5 22.03 0.32 0.03 285.68 287.44 0.28 0.27 \n", "6 24.80 0.03 0.01 328.04 57.38 0.07 0.07 \n", "7 23.47 0.19 0.02 356.50 87.29 0.10 -0.10 \n", "8 10.68 0.07 0.01 132.91 123.39 0.19 -0.14 \n", "9 21.14 1.58 0.16 218.10 278.39 0.48 0.22 \n", "10 26.27 0.07 0.01 207.25 93.25 0.11 0.07 \n", "11 10.89 0.80 0.08 130.49 309.04 0.44 -0.44 \n", "12 30.99 0.07 0.01 39.61 100.73 0.51 -0.14 \n", "13 28.02 0.08 0.01 127.21 241.42 0.05 0.04 \n", "14 29.54 0.12 0.01 145.27 85.16 0.07 0.01 \n", "15 22.71 0.23 0.02 268.69 271.27 0.23 -0.23 \n", "16 29.52 0.24 0.02 296.78 257.94 1.12 0.26 \n", "17 27.50 0.51 0.05 183.62 253.71 0.31 0.31 \n", "18 22.12 0.37 0.04 127.85 63.63 0.69 0.62 \n", "19 31.46 0.61 0.06 11.77 247.69 0.63 -0.33 \n", "20 26.81 0.23 0.01 346.84 247.16 1.29 0.90 \n", "21 26.52 0.16 0.02 357.62 102.55 0.60 0.58 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "track_play=pd.read_excel('NFL_play.xlsx')\n", "track_play.head(22)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3) Plot the positions of the players at step -108 (before the snap) of play 1136." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAFpCAYAAAAiK7hmAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1JElEQVR4nO3df3zP9f7/8fvWbMbYIsxYJCnhhKLvnJNyEP04JGGH8puWQiG1qNTn+C2/Rsmv0acQRR9J5aScxA4pK+ZHvzib3zE2jPew1/ePx3lvhBqv/d7term8L3u/Xq/n+/V+vTaz+/v508dxHEcAAADAVfLN7wsAAABA4UagBAAAgCsESgAAALhCoAQAAIArBEoAAAC4QqAEAACAKwRKAAAAuEKgBAAAgCsESgAAALhCoASQp9asWSMfHx8dO3Ysvy8FAJBDCJQAclT37t3l4+MjHx8flShRQjVq1NCQIUN08uTJPL2OkSNHqkmTJipVqpRCQkIuWWbgwIG6/fbbFRAQoPr16190fOfOnWrWrJkqVaqkkiVLqkaNGho+fLjOnDlzQTmPx6Nhw4apWrVqCggI0I033qi5c+f+7vW9//77uvPOOxUcHKwyZcqoTp06Gjx4cObxESNGXPKacktiYqL+9re/qXTp0rruuus0YMAApaen59n7Ayjc/PL7AgAUPa1bt1ZsbKzOnDmjtWvXqnfv3jp58qTeeOONPLuG9PR0dejQQREREZozZ84lyziOo549e2rDhg36/vvvLzpeokQJde3aVQ0bNlRISIi+++479enTRxkZGRo1alRmuY4dO+rgwYOaM2eOatasqUOHDuns2bOXvbbPPvtMkZGRGjVqlNq0aSMfHx9t27ZNq1evdn/jV+HcuXN64IEHVKFCBX311Vc6cuSIunXrJsdxFBMTky/XBKCQcQAgB3Xr1s1p27btBft69+7thIaGOo7jOF988YUjyTl69KjjOI5z+PBhJzIy0qlSpYoTGBjo1K1b11mwYEHma+fPn++UK1fOOX369AXnfPjhh53HHnvsD68nNjbWCQ4O/t0yL7/8snPbbbf94bkcx3GeeeYZ5y9/+Uvm9scff+wEBwc7R44cydbrHcdxBg4c6Nxzzz2XPR4bG+tIuuARGxvrOI7jHDt2zOnTp49ToUIFp0yZMk6zZs2c+Pj4i+5lxowZTtWqVZ3AwEDnkUceyfx+X8rKlSsdX19fZ+/evZn7Fi5c6AQEBDgpKSnZvi8AxRdN3gByXWBg4EXNxF6nT5/W7bffrhUrVmjr1q3q27evHnvsMW3YsEGS1KFDB507d07Lly/PfM3hw4e1YsUK9ejRI0+u3+unn37SJ598orvvvjtz3/Lly3XHHXdo3LhxqlKlimrVqqUhQ4bo1KlTlz1PaGioEhIStHXr1kse79SpkwYPHqw6depo//792r9/vzp16iTHcfTAAw/owIEDWrlypb755hs1bNhQzZs3V3Jy8gXXuXjxYn344Yf65JNPFB8fryeffPKy1xMXF6e6desqLCwsc1+rVq3k8Xj0zTffXMm3CEAxRaAEkKs2btyoBQsWqHnz5pc8XqVKFQ0ZMkT169dXjRo11L9/f7Vq1UpLliyRZGG0c+fOio2NzXzNO++8o6pVq+qee+7Ji1tQkyZNVLJkSd10002666679Oqrr2Ye++WXX/TVV19p69atWrZsmSZPnqz33nvvdwNc//791ahRI9WrV0/Vq1dXZGSk5s6dK4/HI8nuOSgoSH5+fgoNDVVoaKgCAwP1xRdfaMuWLVqyZInuuOMO3XTTTZowYYJCQkL03nvvZZ7/9OnTmj9/vurXr6+mTZsqJiZGixYt0oEDBy55PQcOHFClSpUu2HfttdfK39//sq8BgPMRKAHkuBUrVigoKEglS5ZUREREZqi5lHPnzmnkyJH605/+pPLlyysoKEirVq1SYmJiZpk+ffpo1apV2rt3ryQpNjY2c/BPXnj33Xf17bffasGCBfroo480YcKEzGMZGRny8fHRO++8o8aNG+v+++/XxIkTNW/evMvWUpYuXVofffSRfvrpJw0fPlxBQUEaPHiwGjdurLS0tMtexzfffKMTJ05kfp+8j127dunnn3/OLHf99deratWqmdsRERHKyMjQzp07L3vuS30vHcfJs+8xgMKNQTkAclyzZs30xhtvqESJEgoLC1OJEiUuW/a1117TpEmTNHnyZNWrV0+lS5fW008/fcEI4wYNGui2227TW2+9pVatWmnLli368MMP8+JWJEnh4eGSpFtvvVXnzp1T3759NXjwYF1zzTWqXLmyqlSpouDg4MzytWvXluM42rNnj2666abLnvfGG2/UjTfeqN69e2vYsGGqVauW3n333cs25WdkZKhy5cpas2bNRccuN5JdygqLlwuHoaGhmV0MvI4ePaozZ85cVHMJAJdCoASQ40qXLq2aNWtmq+zatWvVtm1bPfroo5IsNP3444+qXbv2BeV69+6tSZMmae/evWrRokVmyMtrjuPozJkzchxHkvTnP/9ZS5Ys0YkTJxQUFCRJ+uGHH+Tr63tBLeEfqV69ukqVKpU5vZK/v7/OnTt3QZmGDRvqwIED8vPzU/Xq1S97rsTERO3bty+zT2RcXJx8fX1Vq1atS5aPiIjQyJEjtX//flWuXFmStGrVKgUEBOj222/P9j0AKL5o8gaQr2rWrKl//vOfWr9+vbZv367HH3/8kv32unTpor1792rWrFnq2bPnH543MTFR8fHxSkxM1Llz5xQfH6/4+HidOHEis8xPP/2k+Ph4HThwQKdOncos460dfeedd7R48WJt375dv/zyi5YsWaLo6Gh16tRJfn72ebxz584qX768evTooW3btunLL7/Us88+q549eyowMPCS1zZixAgNHTpUa9as0a5du7R582b17NlTZ86cUcuWLSVZwNy1a5fi4+N1+PBheTwetWjRQhEREXrooYf06aefavfu3Vq/fr2GDx+uTZs2ZZ6/ZMmS6tatm7777jutXbtWAwYMUMeOHRUaGnrJ67n33nt166236rHHHtPmzZu1evVqDRkyRH369FHZsmX/8HsNAEwbBCBHXWraoPP9dtqgI0eOOG3btnWCgoKcihUrOsOHD3e6du16yXM89thjl5xC6HLXod9MvSPJ+eKLLzLL3H333Zcss2vXLsdxHGfRokVOw4YNnaCgIKd06dLOrbfe6owaNco5derUBe+1fft2p0WLFk5gYKBTtWpVZ9CgQU5aWtplr+3zzz932rdv74SHhzv+/v5OpUqVnNatWztr167NLHP69Gmnffv2TkhIyAXTBqWmpjr9+/d3wsLCnBIlSjjh4eFOly5dnMTERMdxsqYNev31152wsDCnZMmSzsMPP+wkJyf/7vfrP//5j/PAAw84gYGBTrly5ZynnnoqW99nAHAcx/FxnP+22wBAAdeyZUvVrl1bU6dOze9LKbBGjBihDz74QPHx8fl9KQCKEfpQAijwkpOTtWrVKn3++eeaNm1afl8OAOA3CJQACryGDRvq6NGjGjt2rG6++eb8vhwAwG/Q5A0AAABXGOUNAAAAVwiUAAAAcIVACQAAAFdy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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig= plt.figure(figsize=(8,4))\n", "temp=track_play[track_play[\"step\"]==0]\n", "xmin=temp[\"x_position\"].min()\n", "xmax=temp[\"x_position\"].max()\n", "ymin=temp[\"y_position\"].min()\n", "ymax=temp[\"y_position\"].max()\n", "plt.xlim(xmin-1,xmax+1)\n", "plt.ylim(ymin-1,ymax+1)\n", "for i in temp.index:\n", " x=temp.loc[i,\"x_position\"]\n", " y=temp.loc[i,\"y_position\"]\n", " n=temp.loc[i,\"nfl_player_id\"]\n", " p=temp.loc[i,\"position\"]\n", " if temp.loc[i,\"team\"]=='home':\n", " plt.text(x, y, p+str(n),color='b',size=5)\n", " else:\n", " plt.text(x, y, p+str(n),color='r',size=5)\n", "plt.title(\"Play 1136 Step 0\",size=10)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4) Let's define a function which creates a snapshot of the position of the players at any step of a given play." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "def teampositions(data,play,step):\n", " playdf=data[data[\"play_id\"]==play]\n", " playdf = playdf.sort_values(by = 'step')\n", " playdf=playdf.reset_index(drop=True)\n", " stepdf=playdf[playdf[\"step\"]==step]\n", " xmin=stepdf[\"x_position\"].min()\n", " xmax=stepdf[\"x_position\"].max()\n", " ymin=stepdf[\"y_position\"].min()\n", " ymax=stepdf[\"y_position\"].max()\n", " fig= plt.figure(figsize=(8,4))\n", " plt.xlim(xmin-1,xmax+1)\n", " plt.ylim(ymin-1,ymax+1)\n", " for i in stepdf.index:\n", " x=stepdf.loc[i,\"x_position\"]\n", " y=stepdf.loc[i,\"y_position\"]\n", " n=stepdf.loc[i,\"nfl_player_id\"]\n", " p=stepdf.loc[i,\"position\"]\n", " if stepdf.loc[i,\"team\"]=='home':\n", " plt.text(x, y, p,color='b',size=5)\n", " else:\n", " plt.text(x, y, p,color='r',size=5)\n", " plt.title(\"Play\"+str(play)+ \" Step\"+str(step),size=10)\n", " plt.savefig(str(step)+'.png')\n", " return" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5. Let's use this function to create snapshots of player positions for the first 50 steps after the snap of play 1136." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "frames=50\n", "for step in np.arange(0,frames,1):\n", " teampositions(track_play,1136,step)\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "6. Let's combine these snapshots into an animation. Can you figure out what happened on this play?" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "from PIL import Image\n", "images = []\n", "for n in range(frames):\n", " exec('a'+str(n)+'=Image.open(\"'+str(n)+'.png\")')\n", " images.append(eval('a'+str(n)))\n", "images[0].save('play.gif',\n", " save_all=True,\n", " append_images=images[1:],\n", " duration=5,\n", " loop=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{admonition} Exercise\n", "Create a video which isolates the movement of just two players: the wide receiver (52425) and cornerback (44830) at the top of the screen.\n", ":::" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} word clouds\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Demo 4 Word Clouds\n", "Let's make a word cloud Christmas card using the song \"Twelve Days of Christmas.\"" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "import wordcloud" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "tags": [ "hide-input" ] }, "outputs": [], "source": [ "#Define a function which counts the interesting words\n", "def calculate_frequencies(textfile):\n", " #list of punctuations\n", " punctuations = '''!()-[]{};:'\"\\,<>./?@#$%^&*_~'''\n", " #list of uninteresting words \n", " uninteresting_words = [\"AND\",\"BY\",\"IT\",\"THE\",\"THAT\",\"A\",\"IS\",\"HAD\",\"TO\",\"NOT\",\"BUT\",\"FOR\",\"OF\",\"WHICH\",\"IF\",\"IN\",\"ON\",\"WERE\",\"YE\",\"THOU\"]\n", " \n", " # removes punctuation and uninteresting words\n", " import re\n", " fc1=str(textfile)\n", " fc2= fc1.split(' ')\n", " for i in range(len(fc2)): \n", " fc2[i] = fc2[i].upper()\n", " #Remove punctuations\n", " fc3 = []\n", " for s in fc2:\n", " if not any([o in s for o in punctuations]):\n", " fc3.append(s)\n", " #Remove uninteresting words\n", " fc4=[]\n", " for s in fc3:\n", " if not any([o in s for o in uninteresting_words]):\n", " fc4.append(s)\n", " fc5=[]\n", " for s in fc4:\n", " if not any([o.lower() in s for o in uninteresting_words]):\n", " fc5.append(s)\n", " \n", " while('' in fc5) : \n", " fc5.remove('') \n", " \n", " import collections\n", " fc6 = collections.Counter(fc5)\n", "\n", " #wordcloud\n", " cloud = wordcloud.WordCloud( max_words = 12) #can adjust the number of words\n", " cloud.generate_from_frequencies(fc6)\n", " return cloud.to_array()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Open the text file with the words to be plotted.\n", "with open('twelvedays.txt','r') as file: \n", " carol = file.readlines()\n", " \n", "#make the wordcloud \n", "carol = calculate_frequencies(carol)\n", "plt.imshow(carol, interpolation = 'nearest')\n", "plt.axis('off')\n", "plt.savefig('card.png', bbox_inches='tight') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{admonition} Exercise\n", "Add the words \"Merry Christmas!\" in red onto the middle of the wordcloud.\n", ":::" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

Demo 5 Name that Tune

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} sound waves\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1) Musical sound waves are created by rapid vibrations caused by musical isntruments. " ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('tVYQRC1-D54')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2) Sound waves are represented mathematically by sine waves with different frequencies." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def sinewave(frequency):\n", " #-----------CREATE THE SOUND WAVE-------------------\n", " sampling_rate=44100 #how many times we take a measurement each second\n", " t = np.linspace(0,1,sampling_rate) # take 44100 samples in 1 second; \n", " sound_wave=np.sin(frequency* 2*np.pi* t) # mathematical definition of a sine wave\n", " #----------PLOT THE SOUND WAVE----------------------\n", " import matplotlib.pyplot as plt\n", " fig=plt.figure(figsize=(2,1))\n", " plt.plot(t,sound_wave)\n", " plt.xlabel(\"seconds\")\n", " return" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sinewave(1) #frequency=1 and 1 cycle per second" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sinewave(2) #frequency=2 and 2 cycles per second" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sinewave(20) #frequency=20 and 20 cycles per second" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3) A computer can create a musical tone based on a given frequency." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```{index} musical tone\n", "```" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "def play(freq):\n", " import numpy as np\n", " from IPython.display import Audio #library used to create sounds\n", " sampling_rate = 44100 # <- rate of sampling\n", " t = np.linspace(0, 2, sampling_rate) # <- setup time values\n", " sound_wave = np.sin(2 * np.pi * freq * t) # <- sine function formula\n", " return Audio(sound_wave, rate=sampling_rate, autoplay=True) # play the generated sound" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "play(220) # play a sound at 220 hz " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4) A musical scale is a sequence of frequencies." ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "from IPython.display import Audio \n", "rest=0\n", "do=220\n", "re=9/8*220\n", "mi=5/4*220\n", "fa=4/3*220\n", "so=3/2*220\n", "la=5/3*220\n", "ti=15/8*220\n", "do1=2*220\n", "re1=2*9/8*220\n", "mi1=2*5/4*220\n", "fa1=2*4/3*220\n", "so1=2*3/2*220\n", "la1=2*5/3*220\n", "ti1=2*15/8*220\n", "do2=2*2*220\n", "scale=[do,re,mi,fa,so,la,ti,do1]" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def play(song):\n", " song=np.array(song)\n", " framerate = 44100\n", " t = np.linspace(0, len(song) / 2, round(framerate * len(song) / 2))[:-1]\n", " song_idx = np.floor(t * 2).astype(int)\n", " data = np.sin(2 * np.pi * song[song_idx] * t)\n", " return Audio(data, rate=framerate, autoplay=True)\n", "play(scale)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5) Can you name that tune?" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tune= [so, so , la, la, so, fa,mi,rest,so, so , la, la, so, fa,mi,rest,so,so,la,ti,do1,do1,re1,re1,ti,la,ti,la,so,so,la,ti,do1,do1,ti,la,so,so,rest,rest,la,la,so,fa,mi,mi,rest,rest,so,so,do,fa,mi,mi,re,re,do,do,do,do,rest,rest]\n", "play(tune)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/jpeg": "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", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('L4PA-MFSM34')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercise" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{admonition} Exercise\n", "Demonstrate how to create a new tune.\n", ":::" ] } ], "metadata": { "celltoolbar": "Edit 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.8.8" } }, "nbformat": 4, "nbformat_minor": 2 }