{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.12","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":59093,"databundleVersionId":7469972,"sourceType":"competition"}],"dockerImageVersionId":30635,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n\ndef plotEEGData(EEGData, window=10, timeMin=0, timeMax=None):\n    plotData = EEGData[[\"Fp1\", \"F3\", \"F7\", \"P3\", \"T3\", \"T5\", \"O1\", \"C3\", \"Fp2\", \"F4\", \"F8\", \"P4\", \"T4\", \"T6\", \"O2\", \"C4\", \"Fz\", \"Cz\", \"Pz\"]].copy()\n    \n    if timeMax is None:\n        timeMax = len(plotData.index)\n    else:\n        timeMax *= 200\n    \n    timeMin *= 200\n    \n    plotData = plotData.iloc[timeMin:timeMax]\n    \n    shift = 0\n    plt.figure(figsize=(20, 20))\n    plt.subplots_adjust(hspace=0)\n    \n    for idx, col in enumerate(plotData.columns):\n        ax = plt.subplot(len(plotData.columns) + 2, 1, idx + 1 + shift)\n        \n        if idx != 0:\n            ax.spines['top'].set_visible(False)\n        else:\n            ax.set_title(\"EEG Graph (Left Hemisphere, Right Hemisphere, Center)\")\n        \n        if idx != len(plotData.columns) - 1:\n            ax.spines['bottom'].set_visible(False)\n        \n        colData = plotData[col]\n        \n        graphMaxy = np.ceil(np.max(colData.rolling(window=window).mean()) / 100) * 100\n        graphMiny = np.floor(np.min(colData.rolling(window=window).mean()) / 100) * 100\n\n        graphMaxx = timeMin + int((timeMax - timeMin) * 1.005)\n        graphMinx = timeMin - int((timeMax - timeMin) * 0.005)\n        \n        padding = np.abs(graphMaxy - graphMiny)\n        \n        plt.ylim(colData.min() - padding, colData.max() + padding)\n        plt.yticks([graphMaxy, 0, graphMiny])\n        \n        plt.xlim(graphMinx, graphMaxx)\n        \n        if idx < len(plotData.columns) - 1:\n            plt.xticks([])\n        else:\n            ticks1 = np.arange(np.ceil(timeMin / 1000) * 1000, np.floor(timeMax / 1000) * 1000 + 1,1000)\n            ax.set_xticks(ticks1)\n            ax.set_xticklabels((ticks1 / 200).astype(int))\n            ax.set_xlabel(\"Time (sec)\")\n\n        for x in range(200, graphMaxx, 200):\n            ax.axvline(x=x, ymin=colData.min() - padding, ymax=colData.max() + padding, linestyle='--', color=(0, 0, 0, 0.5))\n        \n        sns.lineplot(colData.rolling(window=window).mean())\n        \n        if idx == 7 or idx == 15:\n            shift += 1\n            ax = plt.subplot(len(plotData.columns) + 2, 1, idx + 1 + shift)\n            \n            for x in range(200, graphMaxx, 200):\n                ax.axvline(x=x, ymin=colData.min() - padding, ymax=colData.max() + padding, linestyle='--', color=(0, 0, 0, 0.5))\n                \n            plt.ylim(colData.min() - padding, colData.max() + padding)\n            plt.xlim(graphMinx, graphMaxx)\n            ax.spines['bottom'].set_visible(False)\n            ax.spines['top'].set_visible(False)\n            plt.yticks([])\n            plt.xticks([])","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-01-15T07:56:40.389426Z","iopub.execute_input":"2024-01-15T07:56:40.390329Z","iopub.status.idle":"2024-01-15T07:56:42.542635Z","shell.execute_reply.started":"2024-01-15T07:56:40.390278Z","shell.execute_reply":"2024-01-15T07:56:42.540864Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"plotEEGData(pd.read_parquet(\"/kaggle/input/hms-harmful-brain-activity-classification/train_eegs/1001487592.parquet\"), window=10, timeMin=8, timeMax=58)","metadata":{"execution":{"iopub.status.busy":"2024-01-15T07:56:42.544824Z","iopub.execute_input":"2024-01-15T07:56:42.545482Z","iopub.status.idle":"2024-01-15T07:56:50.204721Z","shell.execute_reply.started":"2024-01-15T07:56:42.545433Z","shell.execute_reply":"2024-01-15T07:56:50.203765Z"},"trusted":true},"execution_count":null,"outputs":[]}]}