Skip to content

1st commit #42

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 70 additions & 5 deletions src/1-line-plot.ipynb

Large diffs are not rendered by default.

70 changes: 65 additions & 5 deletions src/2-bar-plot.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,78 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 1,
"metadata": {},
"outputs": [],
"outputs": [
{
"data": {
"image/png": "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1i1IzZo1C5hMe9ttt6lx48bq16+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": [
"<Figure size 640x480 with 1 Axes>"
]
},
"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,
Expand Down
71 changes: 66 additions & 5 deletions src/3-scatter-plot.ipynb

Large diffs are not rendered by default.

59 changes: 54 additions & 5 deletions src/4-pie-chart.ipynb

Large diffs are not rendered by default.

84 changes: 79 additions & 5 deletions src/5-subplot.ipynb

Large diffs are not rendered by default.

68 changes: 63 additions & 5 deletions src/6-histogram.ipynb

Large diffs are not rendered by default.