From cb8d5d07cdada94e84a8e24e2b40d87795fea84f Mon Sep 17 00:00:00 2001 From: Gaurav <151852008+GauravBharti9795@users.noreply.github.com> Date: Tue, 4 Feb 2025 03:40:26 +0000 Subject: [PATCH 1/3] 1st commit --- src/1-line-plot.ipynb | 75 ++++++++++++++++++++++++++++++++--- src/2-bar-plot.ipynb | 70 ++++++++++++++++++++++++++++++--- src/3-scatter-plot.ipynb | 71 ++++++++++++++++++++++++++++++--- src/4-pie-chart.ipynb | 59 +++++++++++++++++++++++++--- src/5-subplot.ipynb | 84 +++++++++++++++++++++++++++++++++++++--- src/6-histogram.ipynb | 68 +++++++++++++++++++++++++++++--- 6 files changed, 397 insertions(+), 30 deletions(-) diff --git a/src/1-line-plot.ipynb b/src/1-line-plot.ipynb index a33ae339..2beaa6bd 100644 --- a/src/1-line-plot.ipynb +++ b/src/1-line-plot.ipynb @@ -9,18 +9,83 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHHCAYAAABZbpmkAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAVGhJREFUeJzt3Xd0VHX+xvH3pPdQ0wglFCmhh2JAF0sAEREEVAQxNHVdcEVcWVFRQITFXRULgiiCIthAUBFBBAVdEEIo0qS3AEloKaROZu7vD9b8NktLYMKdmTyvcziH+c7MnedDAnm4985ci2EYBiIiIiJuysPsACIiIiLlSWVHRERE3JrKjoiIiLg1lR0RERFxayo7IiIi4tZUdkRERMStqeyIiIiIW1PZEREREbemsiMiIiJuTWVHxIUdOnQIi8XCnDlzzI5ySXPmzMFisXDo0CGzo5Twz3/+k7p16+Lp6UnLli3NjiMi5UhlR8RJ/VESNm7caHaUixo3bhwWi6X4V0BAAE2aNOH5558nKyvLIa8xf/58pk6d6pBt/bfvv/+e0aNH07FjR2bPns2kSZMc/hrO4r333sNisVC1alV27959ycd9+eWX3H///dStW5eAgAAaNmzIU089RUZGxvULK1JOvMwOICJXr3bt2uTl5eHt7W1ahunTpxMUFMS5c+f4/vvvefnll1m1ahX//ve/sVgs17Tt+fPns337dkaOHOmYsP+xatUqPDw8mDVrFj4+Pg7dtjNZunQpjz32GPHx8ezZs4du3bqxbt06wsPDL3jsI488QlRUFA8++CC1atVi27ZtvP322yxdupRNmzbh7+9vwgQijqGyI+LCLBYLfn5+pmbo27cv1apVA+DPf/4zffr04csvv+TXX38lPj7e1GyXkp6ejr+/v1sXneTkZO677z7+9Kc/sWTJEvbu3cvtt9/OXXfdxU8//URgYGCJxy9YsIBbbrmlxFpcXByJiYnMmzePYcOGXcf0Io6lw1giLuxi5+wMGjSIoKAgjh07Rq9evQgKCqJ69er87W9/w2azlXi+3W5n6tSpxMbG4ufnR3h4OI8++ihnz5696ky33XYbAAcPHrzs49555x1iY2Px9fUlKiqK4cOHlzhkcsstt/Dtt99y+PDh4kNlderUuew2i4qKeOmll6hXrx6+vr7UqVOHZ599loKCguLHWCwWZs+eTU5OTvF2L3XO04svvoi3tzcnT5684L5HHnmESpUqkZ+ff9lMjpCXl0ejRo1o1KgReXl5xetnzpwhMjKSDh06lPjaHjx4kO7du9O+fXuWLFlCQEAALVq0YNWqVRw6dIj777//gu+F/y06APfccw8Au3btKp/BRK4TlR0RN2Sz2ejatStVq1blX//6F506deLVV19l5syZJR736KOP8vTTT9OxY0feeOMNBg8ezLx58+jatStWq/WqXnv//v0AVK1a9ZKPGTduHMOHDycqKopXX32VPn368O6779KlS5fi133uuedo2bIl1apVY+7cucydO/eK5+8MGzaMF154gdatW/P666/TqVMnJk+eTL9+/YofM3fuXG6++WZ8fX2Lt/unP/3potsbOHAgRUVFfPbZZyXWCwsLWbBgAX369LnsnrWCggJOnTpVql+X4+/vz4cffsi+fft47rnniteHDx9OZmYmc+bMwdPTEzhfgLp160azZs2Ki84fmjdvzsqVK1m/fj2PPfbYZV8TIDU1FaB4z52IyzJExCnNnj3bAIykpKRLPubgwYMGYMyePbt4LTEx0QCMCRMmlHhsq1atjLi4uOLbP//8swEY8+bNK/G4ZcuWXXT9f7344osGYOzevds4efKkcfDgQePdd981fH19jfDwcCMnJ6fEHAcPHjQMwzDS09MNHx8fo0uXLobNZive3ttvv20AxgcffFC81r17d6N27dqXzfGHLVu2GIAxbNiwEut/+9vfDMBYtWpV8VpiYqIRGBhYqu3Gx8cb7du3L7H25ZdfGoDx448/Xva5f8xeml+lMWbMGMPDw8NYs2aN8cUXXxiAMXXq1FI992oMHTrU8PT0NPbs2VNuryFyPeicHRE39ec//7nE7Ztvvpm5c+cW3/7iiy8IDQ2lc+fOJfYsxMXFERQUxI8//kj//v2v+DoNGzYscTs2NpYPP/ywxB6F//bDDz9QWFjIyJEj8fD4/53LDz/8MM8++yzffvstgwcPLtWM/23p0qUAjBo1qsT6U089xb/+9S++/fZbbr311jJv96GHHuKxxx5j//791KtXD4B58+ZRs2ZNOnXqdNnndu3alRUrVpT5NS9l3LhxLFmyhMTERM6dO0enTp3461//6rDt/7f58+cza9YsRo8eTYMGDcrlNUSuF5UdETfk5+dH9erVS6xVrly5xLk4e/fu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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# TODO: Create a line plot with x values ranging from 0 to 10 and y values as the square of x.\n", - "# Customize the plot by adding a title, labels for both axes, and a grid." + "import matplotlib.pyplot as plt # type: ignore\n", + "import numpy as np\n", + "\n", + "# Function to check if a list contains only numeric values\n", + "def validate_input(x):\n", + " if not x: # Check if the list is empty\n", + " raise ValueError(\"The input list is empty.\")\n", + " if not all(isinstance(i, (int, float)) for i in x): # Ensure all values are numeric\n", + " raise ValueError(\"All values in the input list must be numeric.\")\n", + " return True\n", + "\n", + "# Task: Create a line plot of y = x^2\n", + "x = [2, 4, 6, 8, 9, 10] # x values ranging from 0 to 10\n", + "\n", + "try:\n", + " # Validate the input\n", + " validate_input(x)\n", + " \n", + " # Compute y values as the square of x\n", + " y = [i**2 for i in x]\n", + "\n", + " # Create the plot\n", + " plt.plot(x, y)\n", + "\n", + " # Customize the plot\n", + " plt.title('Line Plot of y = x^2') # Add a title\n", + " plt.xlabel('x') # Label for x-axis\n", + " plt.ylabel('y = x^2') # Label for y-axis\n", + " plt.grid(True) # Add grid\n", + "\n", + " # Show the plot\n", + " plt.show()\n", + "\n", + "except ValueError as e:\n", + " print(f\"Error: {e}\")" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" } }, "nbformat": 4, diff --git a/src/2-bar-plot.ipynb b/src/2-bar-plot.ipynb index dedddce1..cedf6c0a 100644 --- a/src/2-bar-plot.ipynb +++ b/src/2-bar-plot.ipynb @@ -9,18 +9,78 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHHCAYAAACRAnNyAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAL2BJREFUeJzt3Xt8zvX/x/Hntdlmm23O52XO56RQX6sQvgpJN60DHQiVSKK+pb6/1sGhwpBQusUoOtNBIeccCimdvhgLyTnfbEa2tb1+f3Rzfbua09h83njcb7frdvN5X+/P5/O6rrdre+7zeX8+l8/MTAAAAA4K8roAAACA4yGoAAAAZxFUAACAswgqAADAWQQVAADgLIIKAABwFkEFAAA4i6ACAACcRVABAADOIqgA56mWLVuqZcuWntbw+uuvq06dOgoJCVHx4sXzte6SJUvk8/m0ZMmSQqnNK927d1dcXJzXZQDnDIIK4IjU1FTde++9qlatmooWLaro6GjFx8dr7Nix+v33370uL982bNig7t27q3r16nr11Vc1adKkQtlPcnKyfD5fwKNs2bJq1aqV5syZUyj7PJaWLVsG1FCyZEk1bdpUkydPVm5uboHsY9iwYfrggw8KZFvAuaKI1wUAkD755BMlJCQoLCxMd955pxo0aKCsrCwtX75cjzzyiH788cdC+0VfWJYsWaLc3FyNHTtWNWrUKPT9PfPMM6patarMTHv27FFycrLat2+vjz/+WB07diz0/UtS5cqVNXz4cEnSvn37NG3aNPXs2VMpKSl67rnnznj7w4YN00033aTOnTuf8baAcwVBBfDYli1bdOutt6pKlSpatGiRKlSo4H+ub9++2rx5sz755BMPK8yfQ4cOKTIyUnv37pWkfJ/yOV3XXXedmjRp4l/u2bOnypUrpzfffLNAgkpubq6ysrJUtGjR4/aJiYnR7bff7l++9957Vbt2bb300kt69tlnFRIScsZ1ABcaTv0AHnvhhReUkZGh1157LSCkHFWjRg09+OCD/uU//vhDzz77rKpXr66wsDDFxcXp8ccfV2Zm5kn3tXfvXv8v8KJFi6pRo0aaOnVqQJ/jzQ3ZunWrfD6fkpOT/W3du3dXsWLFlJqaqvbt2ysqKkrdunVTXFycEhMTJUllypSRz+fTU089JUkB//6ruLg4de/e/aSv4VQVL15c4eHhKlIk8O+xkSNHqnnz5ipVqpTCw8N12WWX6b333suzvs/nU79+/TR9+nTVr19fYWFhmjt3br5qiIiI0BVXXKFDhw5p3759x+136NAhDRo0SLGxsQoLC1Pt2rU1cuRI/fXL7X0+nw4dOqSpU6f6Ty8V5PsFuIojKoDHPv74Y1WrVk3Nmzc/pf69evXS1KlTddNNN2nQoEFatWqVhg8frvXr12vWrFnHXe/3339Xy5YttXnzZvXr109Vq1bVu+++q+7du+vAgQMBYSg//vjjD7Vr105XXnmlRo4cqYiICHXv3l3Tpk3TrFmzNHHiRBUrVkwXX3zxaW3/VKWlpenXX3+VmWnv3r0aN26cMjIyAo5wSNLYsWPVqVMndevWTVlZWXrrrbeUkJCg2bNnq0OHDgF9Fy1apHfeeUf9+vVT6dKlT2sS7E8//aTg4ODjHlkyM3Xq1EmLFy9Wz549dckll2jevHl65JFHtGPHDo0ePVrSnxOTe/XqpWbNmumee+6RJFWvXj3f9QDnHAPgmbS0NJNkN9xwwyn1X7dunUmyXr16BbQ//PDDJskWLVrkb2vRooW1aNHCvzxmzBiTZG+88Ya/LSsry/7xj39YsWLFLD093czMFi9ebJJs8eLFAfvYsmWLSbIpU6b42+666y6TZI899lieWhMTE02S7du3L6BdkiUmJubpX6VKFbvrrrv8y8er4++mTJlikvI8wsLCLDk5OU//w4cPByxnZWVZgwYN7JprrslTZ1BQkP34448n3P9RLVq0sDp16ti+ffts3759tn79euvfv79Jsuuvv97f76677rIqVar4lz/44AOTZEOGDAnY3k033WQ+n882b97sb4uMjAx4j4ALAad+AA+lp6dLkqKiok6p/6effipJGjhwYED7oEGDJOmEc1k+/fRTlS9fXrfddpu/LSQkRP3791dGRoaWLl2ar9r/qk+fPqe9bkEZP3685s+fr/nz5+uNN95Qq1at1KtXL82cOTOgX3h4uP/fv/32m9LS0nTVVVfp66+/zrPNFi1aqF69eqdcw4YNG1SmTBmVKVNGdevW1bhx49ShQwdNnjz5uOt8+umnCg4OVv/+/QPaBw0aJDM7q1cuAS7i1A/goejoaEnSwYMHT6n/tm3bFBQUlOcqmvLly6t48eLatm3bCdetWbOmgoIC/z6pW7eu//nTUaRIEVWuXPm01i1IzZo1C5hMe9ttt6lx48bq16+fOnbsqNDQUEnS7NmzNWTIEK1bty5gXo/P58uzzapVq+arhri4OL366qvy+XwqWrSoatasqbJly55wnW3btqlixYp5wuqZjgtwvuCICuCh6OhoVaxYUT/88EO+1jvWL9WCcrxt5+TkHLM9LCwsT/g5Hcfb/ukKCgpSq1attGvXLm3atEmStGzZMnXq1ElFixbVhAkT9Omnn2r+/Pnq2rVrwMTVo/569OVUREZGqk2bNmrdurXi4+NPGlIAnBxBBfBYx44dlZqaqi+++OKkfatUqaLc3Fz/L96j9uzZowMHDqhKlSonXHfTpk15bj62YcMG//OSVKJECUnSgQMHAvoV1F/2JUqUyLPtrKws7dq1q0C2/1d//PGHJCkjI0OS9P7776to0aKaN2+e7r77bl133XVq06ZNge83P6pUqaKdO3fmOar293GRCjegAq4iqAAe+9e//qXIyEj16tVLe/bsyfN8amqqxo4dK0lq3769JGnMmDEBfZKSkiQpz1Urf9W+fXvt3r1bb7/9tr/tjz/+0Lhx41SsWDG1aNFC0p+/GIODg/X5558HrD9hwoT8v7hjqF69ep5tT5o0qcCPqGRnZ+uzzz5TaGio/zRKcHCwfD5fwL62bt3q6d1e27dvr5ycHL300ksB7aNHj5bP59N1113nb4uMjMwT8oDzHXNUAI9Vr15dM2bM0C233KK6desG3Jl25cqV/kuIJalRo0a66667NGnSJB04cEAtWrTQ6tWrNXXqVHXu3FmtWrU67n7uuecevfLKK+revbvWrl2ruLg4vffee1qxYoXGjBnjnyMRExOjhIQEjRs3Tj6fT9WrV9fs2bP9N3A7U7169dJ9992nLl26qG3btvr22281b948lS5d+oy2O2fOHP9RiL1792rGjBnatGmTHnvsMf9coA4dOigpKUnXXnutunbtqr1792r8+PGqUaOGvvvuuzN+bafj+uuvV6tWrfTEE09o69atatSokT777DN9+OGHGjBgQMAlyJdddpkWLFigpKQkVaxYUVWrVtXll1/uSd3AWeP1ZUcA/pSSkmK9e/e2uLg4Cw0NtaioKIuPj7dx48bZkSNH/P2ys7Pt6aeftqpVq1pISIjFxsba4MGDA/qY5b082cxsz5491qNHDytdurSFhoZaw4YNAy43Pmrfvn3W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UaOGsrOzNW7cOP300096/fXX9fLLLwdsIy4uThkZGVq4cKF+/fVXHT58WLVq1VK3bt105513aubMmdqyZYtWr16t4cOH65NPPpEkPfDAA/r000+VlJSkTZs26ZVXXtGcOXPk8/n8237kkUeUnJysiRMnatOmTUpKStLMmTP18MMP5+t1Pvroo1q5cqX69eundevWadOmTfrwww/Vr18/SdLs2bP14osvat26ddq2bZumTZum3Nxc1a5d+wzfYQD55vUkGQBu2blzp/Xt29eqVKlioaGhVqlSJevUqZMtXrzYzMySkpKsQoUKFh4ebu3atbNp06YFTFQ1M7vvvvusVKlSJskSExPNzCwrK8uefPJJi4uLs5CQEKtQoYLdeOON9t133/nXmzRpklWqVMnCw8Otc+fONmTIECtfvnxAfRMmTLBq1apZSEiI1apVy6ZNmxbwvCSbNWtWQNvfJ9Oama1evdratm1rxYoVs8jISLv44ott6NChZvbnxNoWLVpYiRIlLDw83C6++GJ7++23z+yNBXBafGanOIMOAM6y3r17a8OGDVq2bJnXpQDwCJNpAThj5MiRatu2rSIjIzVnzhxNnTpVEyZM8LosAB7iiAoAZ9x8881asmSJDh48qGrVqumBBx7Qfffd53VZADxEUAEAAM7iqh8AAOAsggoAAHAWQQUAADiLoAIAAJxFUAEAAM4iqAAAAGcRVAAAgLMIKgAAwFkEFQAA4Kz/B2geGXr5vCMFAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# TODO: Create a bar plot with the following data: categories = ['A', 'B', 'C', 'D'] and values = [5, 7, 3, 9].\n", - "# Use different colors for each bar and add a title to the plot." + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "# Function to validate the input data\n", + "def validate_data(categories, values, colors):\n", + " if not categories: # Check if categories list is empty\n", + " raise ValueError(\"The categories list is empty.\")\n", + " if not values: # Check if values list is empty\n", + " raise ValueError(\"The values list is empty.\")\n", + " if len(categories) != len(values): # Ensure categories and values have the same length\n", + " raise ValueError(\"The length of categories and values must be the same.\")\n", + " if len(categories) != len(colors): # Ensure categories and colors have the same length\n", + " raise ValueError(\"The length of categories and colors must be the same.\")\n", + " return True\n", + "\n", + "# Data\n", + "categories = ['Category A', 'Category B', 'Category C', 'Category D']\n", + "values = [5, 7, 3, 9]\n", + "colors = ['red', 'blue', 'purple', 'orange']\n", + "\n", + "try:\n", + " # Validate the input data\n", + " validate_data(categories, values, colors)\n", + "\n", + " # Create a bar plot\n", + " plt.bar(categories, values, color=colors)\n", + "\n", + " # Labeling the axes and the plot\n", + " plt.xlabel('Categories')\n", + " plt.ylabel('Values')\n", + " plt.title('Colourful Bar Plot')\n", + "\n", + " # Show the plot\n", + " plt.show()\n", + "\n", + "except ValueError as e:\n", + " print(f\"Error: {e}\")\n" ] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" } }, "nbformat": 4, diff --git a/src/3-scatter-plot.ipynb b/src/3-scatter-plot.ipynb index 2a8eec20..2d5b9a95 100644 --- a/src/3-scatter-plot.ipynb +++ b/src/3-scatter-plot.ipynb @@ -9,18 +9,79 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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O++8U5KUlZVV7hoL/0d84MCBCggIcHhNmzZNeXl5RfYfHh5epmM8++yzWrp0qZYvX65ff/1V+/bt01133VVi+8If1WbNmhVZ16JFC3vQKo+uXbtq48aNys3NVUpKioKCgtSuXTtdccUV9stLP/zwg8OPYHlceumlRZb5+fkpMzPzvNvOnj1b4eHhslqt2r59u7Zv366IiAjVqlVLH330UYWOdW5bPz8/SbK3Lemz9/LyUpMmTezrz2fWrFlq06aN/d6TgIAALViwoNzf1V27dsnDw0OXXXaZw/JGjRqpXr16Repy5jMZP368jh07pqZNm6p169YaPXq0fv3113LVh4sP98jgouLl5aUOHTqoQ4cOatq0qQYNGqTPP/9ciYmJTm1/7NgxdevWTb6+vho/frwiIiLk7e2tTZs26cknnywyYlIWhdtOnjxZbdu2LbZN4b0Phc4eHXJG69atFRsbW676KluXLl30zz//aO3atUpJSbEHlq5duyolJUW///67Dh8+XOEg4+npWexy4zz3FGVnZ+ubb77RqVOndPnllxdZ//HHH2vixIkOoyplOVZ56yqL2bNn65577tFNN92k0aNHKzAwUJ6enkpKSrLfH1Vezk6S50w/r776au3YsUNfffWVvvvuO02bNk2vvPKK3nnnnYvqCTGUD0EGF63Cyyn79++XJEVERKigoEBbt24tMUgkJyfryJEjmjdvnsMNqMU99VPS/9CXtLzw8oevr6/bhI3Q0FBJ0h9//FFk3e+//64GDRrYH/ku6+yvMTEx8vLyUkpKilJSUuw3z1599dV6//339f3339vfl6aqZp2dN2+eTp06palTp9pvIi70xx9/6Omnn9bq1avL9bSYM87+7Js0aWJffvr0aaWnpzt8R0r6DObOnasmTZpo3rx5Dm3ODe5l+QxDQ0NVUFCgbdu2qUWLFvblBw8e1LFjx+x1l5W/v78GDRqkQYMG2W/wHjt2LEEG58WlJVzwVqxYUey/cguv9RcO3d90003y8PDQ+PHji4ysFG5f+K/Ls/d3+vRpvf3220X2X7t27WKH7wt/+M+dwC06OloRERF66aWXdPz48SLbFfdoblULCgpS27ZtNWvWLId609LS9N133+mGG26wLyupXyXx9vZWhw4d9Mknn2j37t0OIzK5ubl6/fXXFRERoaCgoFL3U9bjOmv27Nlq0qSJHnjgAQ0YMMDh9fjjj6tOnTrFXl6qLLGxsfLy8tLrr7/u8H2bPn26srKyFBcXZ19W0netuO/runXr7PcgFapVq5Yk5z7DwnN+7gR8U6ZMkSSHupx15MgRh/d16tTRZZddVuRxbqA4jMjggvfwww/r5MmT6tevn5o3b67Tp09rzZo1+vTTTxUWFqZBgwZJki677DL997//1YQJE9S1a1f1799fVqtVGzZsUHBwsJKSktS5c2f5+flp4MCBGjFihCwWiz788MNig1J0dLQ+/fRTjRo1Sh06dFCdOnXUp08fRUREqF69enrnnXdUt25d1a5dW1deeaXCw8M1bdo09e7dWy1bttSgQYPUuHFj7d27VytWrJCvr6+++eab6v74NHnyZPXu3VudOnXSkCFD7I9f22w2h795FB0dLenMo+e33XabatasqT59+pQ6SV/Xrl31/PPPy2azqXXr1pLOzO3TrFkz/fHHH7rnnnvOW195jns++/bt04oVKzRixIhi11utVvXs2VOff/65Xn/9ddWsWbPcxypJQECAEhISNG7cOPXq1Uv/+c9/9Mcff+jtt99Whw4d7PdlSSV/12688UbNmzdP/fr1U1xcnNLT0/XOO+8oMjLSISz7+PgoMjJSn376qZo2bSp/f3+1atWq2OkKrrjiCg0cOFDvvfee/VLr+vXrNWvWLN1000269tpry9zXyMhIXXPNNYqOjpa/v79++uknzZ07l7+TBee46GkpoNosWrTIGDx4sNG8eXOjTp06hpeXl3HZZZcZDz/8sHHw4MEi7T/44AMjKirKsFqthp+fn9GtWzdj6dKl9vWrV682OnbsaPj4+BjBwcH2x7klGStWrLC3O378uHH77bcb9erVMyQ5PB771VdfGZGRkUaNGjWKPO78888/G/379zfq169vWK1WIzQ01LjllluM77//3t6m8JHYw4cPO/UZFD5+/fnnn5farrjHrw3DMJYtW2ZcddVVho+Pj+Hr62v06dPH2Lp1a5HtJ0yYYDRu3Njw8PBw6lHsBQsWGJKM3r17OywfOnSoIcmYPn16kW1UzGPCJR1XkjFs2LAi+wgNDTUGDhxYYl0vv/yyIcnhMz/XzJkzDUnGV199Zd9ncY8Qd+vWzejWrZv9feHj14WPvBcqPEdnf4cM48zj1s2bNzdq1qxpNGzY0HjwwQcdHkc3jJK/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OFF9+/ZVWFiYpDPBplevXgoODpbValVISIiGDx+u7OzsMu977969uvPOO1W/fn35+PiodevW+umnn+zrn376aY0ZM0YFBQWV1R0AJkaQAVAmJ0+e1PTp0zVkyBD7Mg8PD/Xt21dff/21/vzzT82cOVPLli3TAw88UKZ9Z2Zm6qqrrlLNmjW1aNEibd26VS+//LL8/PzsbXr37q2cnBwtWrSo0voEwLwshmEYri6iKmVnZ8tmsykrK0u+vr6uLgcwvblz5+qhhx7SoUOHSm33+uuva/LkydqzZ4/T+x4zZoxWr16tlJSUUtsNHjxY//zzjz788EOn9w3AXJz9/WZEBkCZpKSkKDo6utQ2+/bt07x589StW7cy7fvrr79W+/btdfPNNyswMFBRUVF6//33i7SLiYk5b9gBcHEgyAAok127dik4OLjYdfHx8apVq5YaN24sX19fTZs2rUz73rlzp6ZOnarLL79cS5Ys0YMPPqgRI0Zo1qxZDu2Cg4O1Z88e7pMBQJABUDa5ubny9vYudt0rr7yiTZs26auvvtKOHTs0atSoMu27oKBA7dq106RJkxQVFaX77rtP9957r9555x2Hdj4+PiooKFBeXl65+wHgwlDD1QUAMJcGDRooMzOz2HWNGjVSo0aN1Lx5c/n7+6tr16565plnFBQU5NS+g4KCFBkZ6bCsRYsWRR63Pnr0qGrXri0fH5/ydQLABYMRGQBlEhUVpa1bt563XeFln7KMmlx11VX6448/HJb9+eefCg0NdViWlpamqKgop/cL4MLFiAyAMunZs6cSEhKUmZlpfyx64cKFOnjwoDp06KA6depoy5YtGj16tK666ir7XDPOePTRR9W5c2dNmjRJt9xyi9avX6/33ntP7733nkO7lJQUxXbvrrU7juhQzikF1vVWTLi/PD0sldlVACbg9iMy55scC0D1at26tdq1a6fPPvvMvszHx0fvv/++unTpohYtWujRRx/Vf/7zH3377bf2NhkZGbJYLEpOTi5x3x06dND8+fP1ySefqFWrVpowYYJeffVV3XHHHfY2e/fu1erVa/TVyaaKf/9HPTInVfHv/6guLyzX4rT9VdJnAO6rzPPIDBw4UEOGDNHVV19dVTXZZWZmKioqStdee60efPBBBQQEaNu2bYqIiFBERIRT+2AeGaDyLViwQKNHj1ZaWpo8PJz7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jzxieHh4GMuWLXNVF0r14IMPGjabzUhOTjb2799vf508edLe5q677jLGjBljf7969WqjRo0axksvvWT89ttvRmJiolGzZk1j8+bNrujCeZWnj+PGjTOWLFli7Nixw9i4caNx2223Gd7e3saWLVtc0YVSjRkzxli5cqWRnp5u/Prrr8aYMWMMi8VifPfdd4ZhmP/8lbV/Zjp3JTn3iR6zn8PinK+PZjqPjz32mJGcnGykp6cbq1evNmJjY40GDRoYhw4dMgzDfc4fQaYEhY8bn/saOHCgYRiGMXDgQKNbt25Ftmnbtq3h5eVlNGnSxJgxY0a11+2ssvbvhRdeMCIiIgxvb2/D39/fuOaaa4zly5e7pngnFNc3SQ7npFu3bvb+Fvrss8+Mpk2bGl5eXkbLli2NBQsWVG/hZVCePo4cOdK49NJLDS8vL6Nhw4bGDTfcYGzatKn6i3fC4MGDjdDQUMPLy8sICAgwrr/+evuPvGGY//yVtX9mOnclOfdH3uznsDjn66OZzuOtt95qBAUFGV5eXkbjxo2NW2+91di+fbt9vbucP4thGEbVjvkAAABUDe6RAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAQAApkWQAWAqhw8fVqNGjTRp0iT7sjVr1sjLy6vIX94FcOHjby0BMJ2FCxfqpptu0po1a9SsWTO1bdtWffv21ZQpU1xdGoBqRpABYErDhg3TsmXL1L59e23evFkbNmyQ1Wp1dVkAqhlBBoAp5ebmqlWrVtqzZ482btyo1q1bu7okAC7APTIATGnHjh3at2+fCgoKlJGR4epyALgIIzIATOf06dOKiYlR27Zt1axZM7366qvavHmzAgMDXV0agGpGkAFgOqNHj9bcuXP1yy+/qE6dOurWrZtsNpu+/fZbV5cGoJpxaQmAqSQnJ+vVV1/Vhx9+KF9fX3l4eOjDDz9USkqKpk6d6uryAFQzRmQAAIBpMSIDAABMiyADAABMiyADAABMiyADAABMiyADAABMiyADAABMiyADAABMiyADAABMiyADAABMiyADAABMiyADAABMiyADAABM6/8D4j6KzLrr/ksAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# TODO: Create a scatter plot with x = [1, 2, 3, 4, 5] and y = [2, 4, 6, 8, 10].\n", - "# Annotate each point with its (x, y) value, and set the title as 'Scatter Plot with Annotations'." + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "# Function to validate input data\n", + "def validate_data(x, y):\n", + " if not x or not y: # Check if either x or y is empty\n", + " raise ValueError(\"Both x and y lists must be non-empty.\")\n", + " if len(x) != len(y): # Ensure x and y have the same length\n", + " raise ValueError(\"x and y lists must have the same length.\")\n", + " if not all(isinstance(i, (int, float)) for i in x + y): # Ensure all values are numeric\n", + " raise ValueError(\"All elements in x and y must be numeric.\")\n", + " return True\n", + "\n", + "# Data\n", + "x = [1, 2, 3, 4, 5]\n", + "y = [2, 4, 6, 8, 10]\n", + "\n", + "try:\n", + " # Validate the input data\n", + " validate_data(x, y)\n", + "\n", + " # Create a scatter plot\n", + " plt.scatter(x, y)\n", + "\n", + " # Annotate each point with its (x, y) value\n", + " for i in range(len(x)):\n", + " plt.text(x[i], y[i], f'({x[i]}, {y[i]})', ha='right', va='bottom')\n", + "\n", + " # Labeling the axes and the plot\n", + " plt.xlabel('x')\n", + " plt.ylabel('y')\n", + " plt.title('Scatter Plot with Annotations')\n", + "\n", + " # Show the plot\n", + " plt.show()\n", + "\n", + "except ValueError as e:\n", + " print(f\"Error: {e}\")\n" ] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" } }, "nbformat": 4, diff --git a/src/4-pie-chart.ipynb b/src/4-pie-chart.ipynb index 3a13888e..b1600609 100644 --- a/src/4-pie-chart.ipynb +++ b/src/4-pie-chart.ipynb @@ -9,18 +9,67 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# TODO: Create a pie chart with the following data: labels = ['Python', 'Java', 'C++', 'JavaScript'] and sizes = [40, 25, 20, 15].\n", - "# Display the percentages on the chart using autopct." + "import matplotlib.pyplot as plt\n", + "\n", + "# Data\n", + "labels = ['Python', 'Java', 'C++', 'JavaScript']\n", + "sizes = [40, 25, 20, 15]\n", + "\n", + "# Error handling: Check if sizes and labels match in length\n", + "if len(labels) != len(sizes):\n", + " raise ValueError(\"The number of labels and sizes must be the same.\")\n", + "\n", + "# Check if sizes contain valid numeric values\n", + "if not all(isinstance(i, (int, float)) for i in sizes):\n", + " raise ValueError(\"All sizes must be numeric values.\")\n", + "\n", + "# Check if sizes contain non-negative values\n", + "if any(i < 0 for i in sizes):\n", + " raise ValueError(\"Sizes must be non-negative.\")\n", + "\n", + "# Create a pie chart\n", + "plt.pie(sizes, labels=labels, autopct='%1.1f%%')\n", + "\n", + "# Title\n", + "plt.title('Languages Pie Chart')\n", + "\n", + "# Show the plot\n", + "plt.show()\n" ] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" } }, "nbformat": 4, diff --git a/src/5-subplot.ipynb b/src/5-subplot.ipynb index b14b8b67..1fd8746d 100644 --- a/src/5-subplot.ipynb +++ b/src/5-subplot.ipynb @@ -9,18 +9,92 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAzYAAANECAYAAABipbqLAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAvCxJREFUeJzs3Xd4FPXCxfGzaZseSIBAIJBQQ+8gYgFFASGKvQvoVVQQEV8LV6mW2EUFQREBFUS9V1BAkS4inRiKQGgBQklCTSVtd94/kL1Ggiawyewm38/z7HPvzszOnKxhJ2dn5jcWwzAMAQAAAIAb8zA7AAAAAABcKooNAAAAALdHsQEAAADg9ig2AAAAANwexQYAAACA26PYAAAAAHB7FBsAAAAAbo9iAwAAAMDtUWwAAAAAuD2KDSqV/fv3y2KxaPr06WZHuaDp06fLYrFo//79ZkcBAFRiAwYMUFRUlNkxgBKj2KDCOFcINm7caHaUYo0ZM0YWi8Xx8Pf3V7NmzfTiiy8qIyPDKduYNWuWxo8f75R1AQCc69x+6s+PGjVqqHv37vrxxx/LLUe3bt2KZAgNDVXHjh316aefym63O2Ubr776qubOneuUdQEl5WV2AKA81atXT2fOnJG3t7dpGSZNmqTAwEBlZWVp0aJFeuWVV7Rs2TL9+uuvslgsl7TuWbNmadu2bRo2bJhzwgIAnG7cuHGKjo6WYRhKTU3V9OnTdcMNN2jevHnq27dvuWSoU6eO4uLiJEnHjh3TZ599poceeki7du3Sa6+9dsnrf/XVV3XbbbepX79+l7wuoKQoNqhULBaLfH19Tc1w2223qVq1apKkRx99VLfeequ+/fZbrV27Vl26dDE1GwCg7PXu3VsdOnRwPH/ooYcUHh6uL7/80inFxm63Kz8//2/3dyEhIbrvvvsczwcNGqQmTZpowoQJeumll0z9AhC4WJyKhkqluGtsBgwYoMDAQB0+fFj9+vVTYGCgqlevrv/7v/+TzWYr8nq73a7x48erefPm8vX1VXh4uAYNGqRTp05ddKZrrrlGkpSUlPS3y3344Ydq3ry5rFarIiIiNHjwYJ0+fdoxv1u3blqwYIEOHDjgOL2Ac6MBwPVVqVJFfn5+8vIq+n3zW2+9pcsvv1xhYWHy8/NT+/bt9Z///Oe811ssFg0ZMkQzZ8507CcWLlxYqgz+/v667LLLlJ2drWPHjl1wuezsbD399NOKjIyU1WpVkyZN9NZbb8kwjCJ5srOzNWPGDMf+aMCAAaXKA1wMjtgAkmw2m3r27KnOnTvrrbfe0pIlS/T222+rQYMGeuyxxxzLDRo0SNOnT9fAgQM1dOhQJSUlacKECfrtt9/066+/XtQ3XHv37pUkhYWFXXCZMWPGaOzYserRo4cee+wxJSYmatKkSdqwYYNjuy+88ILS09N16NAhvfvuu5KkwMDAUucBAJSt9PR0HT9+XIZhKC0tTR988IGysrKKHEGRpPfee0833nij7r33XuXn52v27Nm6/fbbNX/+fPXp06fIssuWLdPXX3+tIUOGqFq1ahf1xda+ffvk6empKlWqFDvfMAzdeOONWr58uR566CG1adNGP/30k5555hkdPnzYse/5/PPP9a9//UudOnXSI488Iklq0KBBqfMApWYAFcS0adMMScaGDRsuuExSUpIhyZg2bZpjWv/+/Q1Jxrhx44os27ZtW6N9+/aO57/88oshyZg5c2aR5RYuXFjs9L8aPXq0IclITEw0jh07ZiQlJRkfffSRYbVajfDwcCM7O7vIz5GUlGQYhmGkpaUZPj4+xvXXX2/YbDbH+iZMmGBIMj799FPHtD59+hj16tX72xwAAHOc+3z/68NqtRrTp08/b/mcnJwiz/Pz840WLVoY11xzTZHpkgwPDw/j999/L1GOq6++2oiJiTGOHTtmHDt2zNixY4cxdOhQQ5IRGxvrWK5///5F9ilz5841JBkvv/xykfXddttthsViMfbs2eOYFhAQYPTv379EeQBn4VQ04A+PPvpokedXXnml9u3b53j+zTffKCQkRNddd52OHz/ueLRv316BgYFavnx5ibbTpEkTVa9eXdHR0Ro0aJAaNmyoBQsWyN/fv9jllyxZovz8fA0bNkweHv/7J/vwww8rODhYCxYsuIifFgBglokTJ2rx4sVavHixvvjiC3Xv3l3/+te/9O233xZZzs/Pz/H/T506pfT0dF155ZWKj48/b51XX321mjVrVuIMO3fuVPXq1VW9enU1bdpUH3zwgfr06aNPP/30gq/54Ycf5OnpqaFDhxaZ/vTTT8swjHId2Q0oDqeiAZJ8fX1VvXr1ItOqVq1a5NqZ3bt3Kz09XTVq1Ch2HWlpaSXa1n//+18FBwfL29tbderU+cfD8wcOHJB0thD9mY+Pj+rXr++YDwBwD506dSoyeMDdd9+ttm3basiQIerbt698fHwkSfPnz9fLL7+shIQE5eXlOZYvbgTN6OjoUmWIiorSlClTHIPqNGrU6IL7t3MOHDigiIgIBQUFFZnetGlTx3zATBQbQJKnp+c/LmO321WjRg3NnDmz2Pl/LUYXctVVVzlGRQMAwMPDQ927d9d7772n3bt3q3nz5vrll19044036qqrrtKHH36oWrVqydvbW9OmTdOsWbPOW8efj+6UREBAgHr06OGsHwFwCRQboIQaNGigJUuWqGvXrqXegVyKevXqSZISExNVv359x/T8/HwlJSUV2TFd6n1wAADmKCwslCRlZWVJOnt039fXVz/99JOsVqtjuWnTppmSTzq7P1qyZIkyMzOLHLXZuXOnY/457I9gBq6xAUrojjvukM1m00svvXTevMLCwiJDLztTjx495OPjo/fff7/IcJpTp05Venp6kZFxAgIClJ6eXiY5AABlo6CgQIsWLZKPj4/jtC5PT09ZLJYitx3Yv3+/5s6da1JK6YYbbpDNZtOECROKTH/33XdlsVjUu3dvx7SAgIAy2y8CF8IRG1Q4n376abHj9z/55JOXtN6rr75agwYNUlxcnBISEnT99dfL29tbu3fv1jfffKP33ntPt9122yVtozjVq1fXiBEjNHbsWPXq1Us33nijEhMT9eGHH6pjx45Fhgdt3769vvrqKw0fPlwdO3ZUYGCgYmNjnZ4JAHDxfvzxR8dRjrS0NM2aNUu7d+/W888/r+DgYElSnz599M4776hXr1665557lJaWpokTJ6phw4basmWLKbljY2PVvXt3vfDCC9q/f79at26tRYsW6bvvvtOwYcOKXDPavn17LVmyRO+8844iIiIUHR2tzp07m5IblQfFBhXOpEmTip3ujJuDTZ48We3bt9dHH32kf//73/Ly8lJUVJTuu+8+de3a9ZLXfyFjxoxR9erVNWHCBD311FMKDQ3VI488oldffbXIvXMef/xxJSQkaNq0aXr33XdVr149ig0AuJhRo0Y5/r+vr69iYmI0adIkDRo0yDH9mmuu0dSpU/Xaa69p2LBhio6O1uuvv679+/ebVmw8PDz0/fffa9SoUfrqq680bdo0RUVF6c0339TTTz9dZNl33nlHjzzyiF588UWdOXNG/fv3p9igzFmM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h4fr/vvvV6NGjZSZmamlS5fqoYce0tGjR/Xvf//bqdssiR9++EETJ06k3KDMUGzgkl555RWFhIRow4YN5/3BnZaWZk6oMpCdna2AgIC/XebKK6/UbbfdJkkaOHCgGjdurKFDh2rGjBkaMWJEecQEAFyk3r17q0OHDpKkf/3rXwoLC9M777yj7777Tnfffbe8vb2dur21a9fq0UcfVZcuXfTDDz8oKCjIMW/YsGHauHGjtm3b5tRt/pOS7OsAZ+BUNLikvXv3qnnz5sUeRahRo8Z507744gt16tRJ/v7+qlq1qq666iotWrTIMf+7775Tnz59FBERIavVqgYNGuill14qcji+W7duWrBggQ4cOOA4dSAqKkorVqxQx44dJZ0tFufm/fmalnXr1qlXr14KCQmRv7+/rr76av36669FMo4ZM0YWi0Xbt2/XPffco6pVq+qKK64o9XtzzTXXSJKSkpL+drlly5bpyiuvVEBAgKpUqaKbbrpJO3bsKJLnmWeekSRFR0c7fq79+/eXOhMAoGT++hle3DU2drtd48ePV/PmzeXr66vw8HANGjRIp06d+sf1jx07VhaLRTNnzixSas7p0KGDBgwYcN70jz/+WA0aNJDValXHjh21YcOGIvO3bNmiAQMGqH79+vL19VXNmjX14IMP6sSJE0WWu9C+bsCAAZo4caIkFTlFD3AmjtjAJdWrV09r1qzRtm3b1KJFi79dduzYsRozZowuv/xyjRs3Tj4+Plq3bp2WLVum66+/XtLZc50DAwM1fPhwBQYGatmyZRo1apQyMjL05ptvSpJeeOEFpaen69ChQ3r33XclSYGBgWratKnGjRunUaNG6ZFHHtGVV14pSbr88sslnS0QvXv3Vvv27TV69Gh5eHho2rRpuuaaa/TLL7+oU6dORfLefvvtatSokV599VUZhlHq92bv3r2SpLCwsAsus2TJEvXu3Vv169fXmDFjdObMGX3wwQfq2rWr4uPjFRUVpVtuuUW7du3Sl19+qXfffVfVqlWTJFWvXr3UmQAAJVOSz/BBgwZp+vTpGjhwoIYOHaqkpCRNmDBBv/32m3799dcLHuXJycnR0qVLddVVV6lu3bolzjRr1ixlZmZq0KBBslgseuONN3TLLbdo3759jm0tXrxY+/bt08CBA1WzZk39/vvv+vjjj/X7779r7dq155WUv+7r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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# TODO: Create a 2x2 subplot layout.\n", - "# Plot a line chart in the first subplot, a bar chart in the second, a scatter plot in the third, and a pie chart in the fourth." + "import matplotlib.pyplot as plt\n", + "\n", + "# Data\n", + "x = [0, 1, 2, 3, 4]\n", + "y = [0, 1, 4, 9, 16]\n", + "categories = ['A', 'B', 'C', 'D']\n", + "values = [5, 3, 9, 6]\n", + "labels = ['Apple', 'Banana', 'Cherry', 'Date']\n", + "sizes = [10, 15, 7, 5]\n", + "\n", + "# Error handling: Check if x and y have the same length\n", + "if len(x) != len(y):\n", + " raise ValueError(\"The lengths of x and y must be the same for the plot.\")\n", + "\n", + "# Check if categories and values have the same length\n", + "if len(categories) != len(values):\n", + " raise ValueError(\"The number of categories and values must be the same for the bar plot.\")\n", + "\n", + "# Check if labels and sizes have the same length\n", + "if len(labels) != len(sizes):\n", + " raise ValueError(\"The number of labels and sizes must be the same for the pie chart.\")\n", + "\n", + "# Check if all values in 'y', 'values', and 'sizes' are numeric\n", + "if not all(isinstance(i, (int, float)) for i in y + values + sizes):\n", + " raise ValueError(\"All values in y, values, and sizes must be numeric.\")\n", + "\n", + "# Check if all values are non-negative where applicable (e.g., bar and pie chart sizes)\n", + "if any(i < 0 for i in values + sizes):\n", + " raise ValueError(\"Values and sizes must be non-negative.\")\n", + "\n", + "# Create a 2x2 grid of subplots\n", + "fig, axs = plt.subplots(2, 2, figsize=(10, 10))\n", + "\n", + "# First subplot: Line plot\n", + "axs[0, 0].plot(x, y)\n", + "axs[0, 0].set_title('Line Plot')\n", + "\n", + "# Second subplot: Bar plot\n", + "axs[0, 1].bar(categories, values)\n", + "axs[0, 1].set_title('Bar Plot')\n", + "\n", + "# Third subplot: Scatter plot\n", + "axs[1, 0].scatter(x, y)\n", + "axs[1, 0].set_title('Scatter Plot')\n", + "\n", + "# Fourth subplot: Pie chart\n", + "axs[1, 1].pie(sizes, labels=labels, autopct='%1.1f%%')\n", + "axs[1, 1].set_title('Pie Chart')\n", + "\n", + "# Show the plots\n", + "plt.show()" ] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" } }, "nbformat": 4, diff --git a/src/6-histogram.ipynb b/src/6-histogram.ipynb index 08b2a9e9..e3e548a3 100644 --- a/src/6-histogram.ipynb +++ b/src/6-histogram.ipynb @@ -9,18 +9,76 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAOWxJREFUeJzt3XlYlXX+//HXUQRUFjUVXBB3XMEtE1rA0nAZB6oxMxU0bBstHbUmZuY3RjaDLZpOOS5jitWYZt+0+ZYbqWipLaiUWrknmIA1GQglKty/P7o8344swhG4z7l9Pq7rvi7vz/nc9/3+nI+X5+W9nGMzDMMQAACARdQxuwAAAIDqRLgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWQrgBLC4qKkpRUVGm1vD666+rS5cuqlevnho1alSlbdPS0mSz2ZSWllbtdbVt21bjx4+v9v0CMBfhBnAxx44d08MPP6z27dvL29tbfn5+uvnmmzV//nz9/PPPZpdXZV9//bXGjx+vDh066F//+peWLFlSI8dJSUmRzWZTenp6ma9HRUWpR48e13yc9evX6+mnn77m/QCoOR5mFwDg/7z//vsaOXKkvLy8FBcXpx49eujChQv66KOP9MQTT+jgwYM1Fg5qSlpamkpKSjR//nx17NjR7HIcHDp0SHXqVO3/eOvXr9eCBQsIOIALI9wALuLEiRO67777FBwcrK1bt6pFixb21yZNmqSjR4/q/fffN7HCqiksLFTDhg115swZSary5aja4OXlZXYJVXb5fQVQPi5LAS7i+eefV0FBgV599VWHYHNZx44dNWXKFPv6pUuXNGvWLHXo0EFeXl5q27at/vSnP6moqOiqxzpz5owSEhIUEBAgb29vhYWFacWKFQ59yrvX5ZtvvpHNZlNKSoq9bfz48fLx8dGxY8c0bNgw+fr6asyYMWrbtq1mzpwpSWrWrJlsNpv9jMev//xrtXkfzJXHunjxopKSktSpUyd5e3vrhhtu0C233KLU1FRJv4xzwYIFkn6p//JyWWFhoaZPn66goCB5eXkpJCREL774ogzDcDjuzz//rMcff1xNmzaVr6+vfvvb3+rbb78t9Z48/fTTstls+vLLL3X//fercePGuuWWWyRJX3zxhcaPH2+/fBkYGKgHHnhA//3vfx2OdXkfhw8f1tixY+Xv769mzZrp//2//yfDMJSVlaWYmBj5+fkpMDBQc+bMqc63GDAFZ24AF/G///u/at++vSIiIirVf+LEiVqxYoV+97vfafr06frkk0+UnJysr776SmvXri13u59//llRUVE6evSoJk+erHbt2mnNmjUaP368fvzxR4cAVRWXLl1SdHS0brnlFr344otq0KCBxo8fr9dee01r167VwoUL5ePjo9DQUKf2X1l5eXn6/vvvS7VfvHjxqts+/fTTSk5O1sSJE9W/f3/l5+crPT1de/fu1eDBg/Xwww/r9OnTSk1N1euvv+6wrWEY+u1vf6tt27YpISFBvXr10qZNm/TEE0/o22+/1UsvvWTvO378eL311lsaN26cBgwYoO3bt2v48OHl1jVy5Eh16tRJf//73+1BKTU1VcePH9eECRMUGBhov2R58OBBffzxxw6hS5JGjRqlrl27avbs2Xr//ff17LPPqkmTJlq8eLFuv/12Pffcc/r3v/+tGTNm6MYbb9Rtt9121fcLcFkGANPl5eUZkoyYmJhK9c/IyDAkGRMnTnRonzFjhiHJ2Lp1q70tMjLSiIyMtK/PmzfPkGS88cYb9rYLFy4Y4eHhho+Pj5Gfn28YhmFs27bNkGRs27bN4RgnTpwwJBnLly+3t8XHxxuSjKeeeqpUrTNnzjQkGd99951DuyRj5syZpfoHBwcb8fHx9vXy6rjS8uXLDUkVLt27d6/wWGFhYcbw4cMrPM6kSZOMsv7pXLdunSHJePbZZx3af/e73xk2m804evSoYRiGsWfPHkOSMXXqVId+48ePL/WeXH7vRo8eXep4P/30U6m2N99805Bk7Nixo9Q+HnroIXvbpUuXjNatWxs2m82YPXu2vf3s2bNG/fr1Hd4TwB1xWQpwAfn5+ZIkX1/fSvVfv369JGnatGkO7dOnT5ekCu/NWb9+vQIDAzV69Gh7W7169fT444+roKBA27dvr1Ltv/boo486vW11WbBggVJTU0stlTlj1KhRIx08eFBHjhyp8nHXr1+vunXr6vHHH3donz59ugzD0IYNGyRJGzdulCT9/ve/d+j32GOPlbvvRx55pFRb/fr17X8+f/68vv/+ew0YMECStHfv3lL9J06caP9z3bp11a9fPxmGoYSEBHt7o0aNFBISouPHj5dbC+AOuCwFuAA/Pz9J0rlz5yrV/+TJk6pTp06pp48CAwPVqFEjnTx5ssJtO3XqVOopoa5du9pfd4aHh4dat27t1LbVqX///urXr1+p9saNG5d5uerXnnnmGcXExKhz587q0aOHhgwZonHjxlUqGJ08eVItW7YsFVCvfF8vz127du0c+lX0JNmVfSXphx9+UFJSklatWmW/afuyvLy8Uv3btGnjsO7v7y9vb281bdq0VPuV9+0A7oYzN4AL8PPzU8uWLXXgwIEqbXflfRXVqbx9FxcXl9nu5eVV5ceqq7L/2nDbbbfp2LFjWrZsmXr06KGlS5eqT58+Wrp0qWk1SY5naS6799579a9//UuPPPKI3nnnHW3evNl+VqikpKRU/7p161aqTVKpG6ABd0O4AVzEb37zGx07dky7d+++at/g4GCVlJSUunySm5urH3/8UcHBwRVue+TIkVIfgF9//bX9demXMx2S9OOPPzr0c/bMzpUaN25cat8XLlxQdnZ2tezfWU2aNNGECRP05ptvKisrS6GhoQ5PMJUX+oKDg3X69OlSZ9+ufF8vz92JEycc+h09erTSNZ49e1ZbtmzRU089paSkJN11110aPHiw2rdvX+l9AFZGuAFcxJNPPqmGDRtq4sSJys3NLfX6sWPHNH/+fEnSsGHDJEnz5s1z6DN37lxJqvDJm2HDhiknJ0erV6+2t126dEkvv/yyfHx8FBkZKemXD+G6detqx44dDtv/85//rPrgytChQ4dS+16yZImpZ26uvBzj4+Ojjh07Ojxef/k7Zq4MZsOGDVNxcbFeeeUVh/aXXnpJNptNQ4cOlSRFR0dLKv0+vvzyy5Wu8/IZlyvPsFz59wG4XnHPDeAiOnTooJUrV9of2f31NxTv2rXL/ri2JIWFhSk+Pl5LlizRjz/+qMjISH366adasWKFYmNjNXDgwHKP89BDD2nx4sUaP3689uzZo7Zt2+rtt9/Wzp07NW/ePPs9I/7+/ho5cqRefvll2Ww2dejQQe+9916p+zucNXHiRD3yyCO65557NHjwYH3++efatGlTqXtAalO3bt0UFRWlvn37qkmTJkpPT9fbb7+tyZMn2/v07dtXkvT4448rOjpadevW1X333acRI0Zo4MCB+vOf/6xvvvlGYWFh2rx5s959911NnTpVHTp0sG9/zz33aN68efrvf/9rfxT88OHDkip3qdHPz0+33Xab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s2dPNWzYUFOnTq3w8pHNZnO4xCX9cinqsoKCAvXt21f//ve/S23brFmz6hsUgFpHuAHgMu69915NmTJFK1eu1GuvvaZHH31UNptNO3fuVExMjMaOHStJKikp0eHDh9WtW7dy99WsWTNlZ2fb148cOaKffvrJvt6nTx+tXr1azZs3l5+fX80NCkCt47IUAJfh4+OjUaNGKTExUdnZ2Ro/frwkqVOnTkpNTdWuXbv01Vdf6eGHH1Zubm6F+7r99tv1yiuvaN++fUpPT9cjjzyievXq2V8fM2aMmjZtqpiYGH344Yc6ceKE0tLS9Pjjj5f5SDoA90G4AeBSEhISdPbsWUVHR6tly5aSpL/85S/q06ePoqOjFRUVpcDAQMXGxla4nzlz5igoKEi33nqr7r//fs2YMUMNGjSwv96gQQPt2LFDbdq00d13362uXbsqISFB58+f50wO4OZsxpUXpQEAANwYZ24AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAICl/H+GlB0hF9WsAAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# TODO: Create a histogram for the following data: data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5].\n", - "# Customize the histogram with a title, labels for the x-axis, and a specific color for the bars." + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "# Data for the histogram\n", + "data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5]\n", + "\n", + "# Error handling: Check if data is a non-empty list\n", + "if not isinstance(data, list) or len(data) == 0:\n", + " raise ValueError(\"Data must be a non-empty list.\")\n", + "\n", + "# Check if data contains numeric values\n", + "if not all(isinstance(i, (int, float)) for i in data):\n", + " raise ValueError(\"All elements in the data list must be numeric.\")\n", + "\n", + "# Error handling: Check if the number of bins is a positive integer\n", + "num_bins = 5\n", + "if not isinstance(num_bins, int) or num_bins <= 0:\n", + " raise ValueError(\"The number of bins must be a positive integer.\")\n", + "\n", + "# Create histogram data\n", + "counts, bins = np.histogram(data, bins=num_bins)\n", + "\n", + "# Generate a colormap for the bins (this will auto-generate colors)\n", + "colors = plt.cm.viridis(np.linspace(0, 1, num_bins))\n", + "\n", + "# Create the bars using plt.bar() to specify color for each bin\n", + "plt.bar(bins[:-1], counts, width=np.diff(bins), align='edge', color=colors)\n", + "\n", + "# Add title and labels\n", + "plt.title('Colourful Histogram')\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "\n", + "# Show the plot\n", + "plt.show()" ] } ], "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, "language_info": { - "name": "python" + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" } }, "nbformat": 4, From 1e33de30d56dec856df9561d2c35dc9e3f2d4c8f Mon Sep 17 00:00:00 2001 From: Gaurav <151852008+GauravBharti9795@users.noreply.github.com> Date: Wed, 12 Feb 2025 08:36:22 +0000 Subject: [PATCH 2/3] 2nd commit --- src/1-line-plot.ipynb | 2 +- src/2-bar-plot.ipynb | 2 +- src/3-scatter-plot.ipynb | 2 +- src/4-pie-chart.ipynb | 2 +- src/5-subplot.ipynb | 2 +- src/6-histogram.ipynb | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/1-line-plot.ipynb b/src/1-line-plot.ipynb index 2beaa6bd..9226bfc0 100644 --- a/src/1-line-plot.ipynb +++ b/src/1-line-plot.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { diff --git a/src/2-bar-plot.ipynb b/src/2-bar-plot.ipynb index cedf6c0a..268babf5 100644 --- a/src/2-bar-plot.ipynb +++ b/src/2-bar-plot.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { diff --git a/src/3-scatter-plot.ipynb b/src/3-scatter-plot.ipynb index 2d5b9a95..6d2d83e0 100644 --- a/src/3-scatter-plot.ipynb +++ b/src/3-scatter-plot.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { diff --git a/src/4-pie-chart.ipynb b/src/4-pie-chart.ipynb index b1600609..2cc59d4b 100644 --- a/src/4-pie-chart.ipynb +++ b/src/4-pie-chart.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { diff --git a/src/5-subplot.ipynb b/src/5-subplot.ipynb index 1fd8746d..7d52d76e 100644 --- a/src/5-subplot.ipynb +++ b/src/5-subplot.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 3, "metadata": {}, "outputs": [ { diff --git a/src/6-histogram.ipynb b/src/6-histogram.ipynb index e3e548a3..89ccd69f 100644 --- a/src/6-histogram.ipynb +++ b/src/6-histogram.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { From 7c891ceaedea35126ef58f4e4b183702e22f35a5 Mon Sep 17 00:00:00 2001 From: Gaurav <151852008+GauravBharti9795@users.noreply.github.com> Date: Fri, 14 Feb 2025 11:55:19 +0000 Subject: [PATCH 3/3] 3 commit --- src/1-line-plot.ipynb | 2 +- src/2-bar-plot.ipynb | 2 +- src/3-scatter-plot.ipynb | 2 +- src/4-pie-chart.ipynb | 2 +- src/5-subplot.ipynb | 2 +- src/6-histogram.ipynb | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/1-line-plot.ipynb b/src/1-line-plot.ipynb index 9226bfc0..2beaa6bd 100644 --- a/src/1-line-plot.ipynb +++ b/src/1-line-plot.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { diff --git a/src/2-bar-plot.ipynb b/src/2-bar-plot.ipynb index 268babf5..cedf6c0a 100644 --- a/src/2-bar-plot.ipynb +++ b/src/2-bar-plot.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { diff --git a/src/3-scatter-plot.ipynb b/src/3-scatter-plot.ipynb index 6d2d83e0..2d5b9a95 100644 --- a/src/3-scatter-plot.ipynb +++ b/src/3-scatter-plot.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { diff --git a/src/4-pie-chart.ipynb b/src/4-pie-chart.ipynb index 2cc59d4b..b1600609 100644 --- a/src/4-pie-chart.ipynb +++ b/src/4-pie-chart.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [ { diff --git a/src/5-subplot.ipynb b/src/5-subplot.ipynb index 7d52d76e..1fd8746d 100644 --- a/src/5-subplot.ipynb +++ b/src/5-subplot.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [ { diff --git a/src/6-histogram.ipynb b/src/6-histogram.ipynb index 89ccd69f..e3e548a3 100644 --- a/src/6-histogram.ipynb +++ b/src/6-histogram.ipynb @@ -9,7 +9,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ {