From ddaff378036bbb2e6d0174a556c48b50d6c6713a Mon Sep 17 00:00:00 2001 From: Shailesh Thapa Date: Fri, 18 Jul 2025 09:06:01 -0400 Subject: [PATCH] Add assignment3 folder under assignment-3 branch --- .../assignment3/Assignment-3_PowerBIcode.pbix | Bin 0 -> 25957 bytes .../assignment3/Assignment-3_Pythoncode.ipynb | 103 ++++++++++++++++++ .../assignment3/PowerBI_Visualization.jpg | Bin 0 -> 69016 bytes .../PowerBI_describe_justify.ipynb | 74 +++++++++++++ .../assignment3/Python_Visualization.png | Bin 0 -> 43109 bytes .../assignment3/Python_describe_justify.ipynb | 73 +++++++++++++ .../assignments/assignment3/assignment_3.md | 69 ++++++++++++ .../ontario_housing_supply_2024.csv | 52 +++++++++ 8 files changed, 371 insertions(+) create mode 100644 02_activities/assignments/assignment3/Assignment-3_PowerBIcode.pbix create mode 100644 02_activities/assignments/assignment3/Assignment-3_Pythoncode.ipynb create mode 100644 02_activities/assignments/assignment3/PowerBI_Visualization.jpg create mode 100644 02_activities/assignments/assignment3/PowerBI_describe_justify.ipynb create mode 100644 02_activities/assignments/assignment3/Python_Visualization.png create mode 100644 02_activities/assignments/assignment3/Python_describe_justify.ipynb create mode 100644 02_activities/assignments/assignment3/assignment_3.md create mode 100644 02_activities/assignments/assignment3/ontario_housing_supply_2024.csv diff --git a/02_activities/assignments/assignment3/Assignment-3_PowerBIcode.pbix b/02_activities/assignments/assignment3/Assignment-3_PowerBIcode.pbix new file mode 100644 index 0000000000000000000000000000000000000000..a46abdfbdf71e0cff060cef071a64e50a551e481 GIT binary patch literal 25957 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 literal 0 HcmV?d00001 diff --git a/02_activities/assignments/assignment3/Assignment-3_Pythoncode.ipynb b/02_activities/assignments/assignment3/Assignment-3_Pythoncode.ipynb new file mode 100644 index 000000000..9176bced2 --- /dev/null +++ b/02_activities/assignments/assignment3/Assignment-3_Pythoncode.ipynb @@ -0,0 +1,103 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 26, + "id": "213576fc", + "metadata": {}, + "outputs": [], + "source": [ + "# Import libraries\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "c69c793d", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\ShaileshT\\AppData\\Local\\Temp\\ipykernel_33040\\3500826477.py:15: FutureWarning: \n", + "\n", + "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `y` variable to `hue` and set `legend=False` for the same effect.\n", + "\n", + " sns.barplot(\n", + "C:\\Users\\ShaileshT\\AppData\\Local\\Temp\\ipykernel_33040\\3500826477.py:39: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown\n", + " plt.show()\n" + ] + } + ], + "source": [ + "\n", + "\n", + "# Step 1: Loading the CSV dataset\n", + "df = pd.read_csv(\"ontario_housing_supply_2024.csv\")\n", + "\n", + "# Step 2: Cleaning the percentage column\n", + "df['Progress % for 2024'] = df['Progress % for 2024'].str.replace('%', '').astype(float)\n", + "\n", + "# Step 3: Sorting and extracting top 10 municipalities by 2024 progress %\n", + "top10 = df.sort_values(by='Progress % for 2024', ascending=False).head(10)\n", + "\n", + "# Step 4: Setting figure size and style\n", + "fig, ax = plt.subplots(figsize=(10, 6), dpi=100)\n", + "sns.set(style=\"whitegrid\")\n", + "\n", + "# Step 5: Plotting horizontal bar chart ON `ax`\n", + "sns.barplot(\n", + " x='Progress % for 2024',\n", + " y='Municipality',\n", + " data=top10,\n", + " palette='viridis',\n", + " ax=ax # <-- Use the correct axes\n", + ")\n", + "\n", + "# Step 6: Adding title and labels\n", + "ax.set_title('Top 10 Ontario Municipalities by 2024 Housing Target Progress', fontsize=14)\n", + "ax.set_xlabel('Progress Toward 2024 Target (%)', fontsize=12)\n", + "ax.set_ylabel('Municipality', fontsize=12)\n", + "\n", + "# Step 7: Annotating each bar with its value\n", + "for i in range(len(top10)):\n", + " ax.text(\n", + " top10['Progress % for 2024'].iloc[i] + 1, # x\n", + " i, # y\n", + " f\"{top10['Progress % for 2024'].iloc[i]:.1f}%\", # label\n", + " va='center'\n", + " )\n", + "\n", + "# Step 8: Save plot\n", + "plt.tight_layout()\n", + "plt.show()\n", + "fig.savefig(\"top10_housing_progress.png\", dpi=100, bbox_inches='tight')\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "dsi_participant", + "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.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/02_activities/assignments/assignment3/PowerBI_Visualization.jpg b/02_activities/assignments/assignment3/PowerBI_Visualization.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1cc5fb5de8e869e9d49aa7429226b4d748846ff5 GIT binary patch literal 69016 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%0A3K=G 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 literal 0 HcmV?d00001 diff --git a/02_activities/assignments/assignment3/Python_describe_justify.ipynb b/02_activities/assignments/assignment3/Python_describe_justify.ipynb new file mode 100644 index 000000000..3549e5a24 --- /dev/null +++ b/02_activities/assignments/assignment3/Python_describe_justify.ipynb @@ -0,0 +1,73 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ffdb7648", + "metadata": {}, + "source": [ + "Python Visualization – Describe and Justify:\n", + "1.\tWhat software did you use to create your data visualization?\n", + "I used Python, specifically the matplotlib and seaborn libraries, to create the horizontal bar chart. These tools are powerful for data wrangling, customization, and reproducible visual storytelling through code.\n", + "2.\tWho is your intended audience?\n", + "This visualization is designed for housing analysts, data scientists, government transparency advocates, and anyone seeking a clear, data-driven snapshot of housing development performance in Ontario municipalities.\n", + "3.\tWhat information or message are you trying to convey with your visualization?\n", + "The visualization ranks and compares the top 10 municipalities based on their percentage progress toward 2024 housing targets. The message is:\n", + "Here are the municipalities outperforming their targets — let's spotlight what they’re doing right. It draws attention to overachievement and encourages reflection on regional housing policies.\n", + "4.\tWhat aspects of design did you consider when making your visualization? How did you apply them? With what elements of your plots?\n", + "-\tUsed a sequential color palette to reflect progression from lowest to highest performance.\n", + "-\tPlotted a horizontal bar chart for easier comparison of categorical names with long labels.\n", + "-\tAdded value labels directly on bars to remove the need for users to estimate lengths.\n", + "-\tSet a descriptive title and labeled axes to guide interpretation.\n", + "-\tRemoved unnecessary clutter (e.g., spines, ticks) to maintain focus.\n", + "\n", + "5.\tHow did you ensure that your data visualizations are reproducible?\n", + "The entire visualization is built from a single Python script, which:\n", + "1.\tLoads the dataset\n", + "2.\tFilters and sorts the top 10 municipalities\n", + "3.\tGenerates the chart with all formatting\n", + "Anyone running this script with the same data will get identical output, making it fully reproducible. It can also be automated or integrated into reports.\n", + "\n", + "6.\tHow did you ensure that your data visualization is accessible?\n", + "-\tUsed high-contrast color shades that are distinguishable by most users, including those with color vision deficiency.\n", + "-\tLabels on each bar improve readability without requiring legend decoding.\n", + "-\tFont sizes and layout spacing were tuned for clarity on both screen and print.\n", + "-\tThe chart doesn’t rely on interactive features, so it's accessible in static formats like PDFs or presentations.\n", + "\n", + "7.\tWho are the individuals and communities who might be impacted by your visualization?\n", + "-\tMunicipal planners and policymakers can benchmark their performance.\n", + "-\tCivic groups and local residents can use the visualization for advocacy or accountability.\n", + "-\tGovernment funding bodies may use this to identify and reward top-performing cities.\n", + "The chart highlights successes that could lead to replication or funding shifts.\n", + "\n", + "8.\tHow did you choose which features of your chosen dataset to include or exclude from your visualization?\n", + "To emphasize clarity, I excluded raw counts and non-percentage metrics. I filtered the top 10 performers only; this allowed the chart to remain readable, focused, and impactful, avoiding information overload or dilution of the insight.\n", + "\n", + "9.\tWhat ‘underwater labour’ contributed to your final data visualization product?\n", + "-\tWriting and testing Python code to prepare the dataset and format the chart\n", + "-\tAdjusting figure size, orientation, axis labels, and color mapping manually\n", + "-\tDebugging issues like oversized image exports and annotating labels properly\n", + "-\tVerifying the percentage calculations to ensure accuracy\n", + "-\tExporting the chart in a format suitable for inclusion in reports\n" + ] + }, + { + "cell_type": "markdown", + "id": "638fa34d", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "dsi_participant", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.9.21" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/02_activities/assignments/assignment3/assignment_3.md b/02_activities/assignments/assignment3/assignment_3.md new file mode 100644 index 000000000..584248b5f --- /dev/null +++ b/02_activities/assignments/assignment3/assignment_3.md @@ -0,0 +1,69 @@ +# Data Visualization + +## Assignment 3: Final Project + +### Requirements: +- We will finish this class by giving you the chance to use what you have learned in a practical context, by creating data visualizations from raw data. +- Choose a dataset of interest from the [City of Toronto’s Open Data Portal](https://www.toronto.ca/city-government/data-research-maps/open-data/) or [Ontario’s Open Data Catalogue](https://data.ontario.ca/). +- Using Python and one other data visualization software (Excel or free alternative, Tableau Public, any other tool you prefer), create two distinct visualizations from your dataset of choice. +- For each visualization, describe and justify: + > What software did you use to create your data visualization? + + > Who is your intended audience? + + > What information or message are you trying to convey with your visualization? + + > What aspects of design did you consider when making your visualization? How did you apply them? With what elements of your plots? + + > How did you ensure that your data visualizations are reproducible? If the tool you used to make your data visualization is not reproducible, how will this impact your data visualization? + + > How did you ensure that your data visualization is accessible? + + > Who are the individuals and communities who might be impacted by your visualization? + + > How did you choose which features of your chosen dataset to include or exclude from your visualization? + + > What ‘underwater labour’ contributed to your final data visualization product? + +- This assignment is intentionally open-ended - you are free to create static or dynamic data visualizations, maps, or whatever form of data visualization you think best communicates your information to your audience of choice! +- Total word count should not exceed **(as a maximum) 1000 words** + +### Why am I doing this assignment?: +- This ongoing assignment ensures active participation in the course, and assesses the learning outcomes: +* Create and customize data visualizations from start to finish in Python +* Apply general design principles to create accessible and equitable data visualizations +* Use data visualization to tell a story +- This would be a great project to include in your GitHub Portfolio – put in the effort to make it something worthy of showing prospective employers! + +### Rubric: + +| Component | Scoring | Requirement | +|-------------------|----------|-----------------------------------------------------------------------------| +| Data Visualizations | Complete/Incomplete | - Data visualizations are distinct from each other
- Data visualizations are clearly identified
- Different sources/rationales (text with two images of data, if visualizations are labeled)
- High-quality visuals (high resolution and clear data)
- Data visualizations follow best practices of accessibility | +| Written Explanations | Complete/Incomplete | - All questions from assignment description are answered for each visualization
- Explanations are supported by course content or scholarly sources, where needed | +| Code | Complete/Incomplete | - All code is included as an appendix with your final submissions
- Code is clearly commented and reproducible | + +## Submission Information + +🚨 **Please review our [Assignment Submission Guide](https://github.com/UofT-DSI/onboarding/blob/main/onboarding_documents/submissions.md)** 🚨 for detailed instructions on how to format, branch, and submit your work. Following these guidelines is crucial for your submissions to be evaluated correctly. + +### Submission Parameters: +* Submission Due Date: `23:59 - 13/07/2025` +* The branch name for your repo should be: `assignment-3` +* What to submit for this assignment: + * A folder/directory containing: + * This file (assignment_3.md) + * Two data visualizations + * Two markdown files for each both visualizations with their written descriptions. + * Link to your dataset of choice. + * Complete and commented code as an appendix (for your visualization made with Python, and for the other, if relevant) +* What the pull request link should look like for this assignment: `https://github.com//visualization/pull/` + * Open a private window in your browser. Copy and paste the link to your pull request into the address bar. Make sure you can see your pull request properly. This helps the technical facilitator and learning support staff review your submission easily. + +Checklist: +- [ ] Create a branch called `assignment-3`. +- [ ] Ensure that the repository is public. +- [ ] Review [the PR description guidelines](https://github.com/UofT-DSI/onboarding/blob/main/onboarding_documents/submissions.md#guidelines-for-pull-request-descriptions) and adhere to them. +- [ ] Verify that the link is accessible in a private browser window. + +If you encounter any difficulties or have questions, please don't hesitate to reach out to our team via our Slack. Our Technical Facilitators and Learning Support staff are here to help you navigate any challenges. diff --git a/02_activities/assignments/assignment3/ontario_housing_supply_2024.csv b/02_activities/assignments/assignment3/ontario_housing_supply_2024.csv new file mode 100644 index 000000000..26f7bf6c6 --- /dev/null +++ b/02_activities/assignments/assignment3/ontario_housing_supply_2024.csv @@ -0,0 +1,52 @@ +_id,Municipality,Ten-year housing target,Total housing progress since 2022,Target for 2024,Total 2024 housing progress,Progress % for 2024,Housing Target Status +409,Ajax,17000,1801,1417,163,11.50%,Not met +410,Aurora,8000,641,667,167,25.04%,Not met +411,Barrie,23000,4782,1917,791,41.26%,Not met +412,Belleville,3100,1140,258,213,82.56%,On track +413,Bradford West Gwillimbury,6500,991,542,239,44.10%,Not met +414,Brampton,113000,20121,9417,4907,52.11%,Not met +415,Brantford,10000,2451,833,280,33.61%,Not met +416,Burlington,29000,1466,2417,754,31.20%,Not met +417,Caledon,13000,2349,1083,553,51.06%,Not met +418,Cambridge,19000,2908,1583,626,39.55%,Not met +419,Chatham-Kent,1100,1203,92,136,147.83%,Exceeded +420,Clarington,13000,1820,1083,584,53.92%,Not met +421,East Gwillimbury,4300,993,358,107,29.89%,Not met +422,Georgina,6200,845,517,223,43.13%,Not met +423,Greater Sudbury,3800,967,317,230,72.56%,Not met +424,Guelph,18000,2577,1500,849,56.60%,Not met +425,Haldimand County,4200,673,350,92,26.29%,Not met +426,Halton Hills,9500,652,792,266,33.59%,Not met +427,Hamilton,47000,9444,3917,1632,41.66%,Not met +428,Innisfil,6300,1555,525,260,49.52%,Not met +429,Kawartha Lakes,6500,1375,542,332,61.25%,Not met +430,Kingston,8000,2348,667,452,67.77%,Not met +431,Kitchener,35000,8565,2917,2038,69.87%,Not met +432,London,47000,7325,3917,3012,76.90%,Not met +433,Markham,44000,5903,3667,1445,39.41%,Not met +434,Milton,21000,4952,1750,1673,95.60%,On track +435,Mississauga,120000,11880,10000,3277,32.77%,Not met +436,New Tecumseth,6400,538,533,231,43.34%,Not met +437,Newmarket,12000,983,1000,199,19.90%,Not met +438,Niagara Falls,8000,1564,667,481,72.11%,Not met +439,Norfolk County,5700,701,475,155,32.63%,Not met +440,North Bay,1000,652,83,230,277.11%,Exceeded +441,Oakville,33000,7306,2750,3382,122.98%,Exceeded +442,Oshawa,23000,4001,1917,887,46.27%,Not met +443,Ottawa,151000,26777,12583,6007,47.74%,Not met +444,Peterborough City,4700,1009,392,233,59.44%,Not met +445,Pickering,13000,4748,1083,1696,156.60%,Exceeded +446,Richmond Hill,27000,2948,2250,752,33.42%,Not met +447,Sarnia,1000,561,83,150,180.72%,Exceeded +448,Sault Ste. Marie,1500,662,125,180,144.00%,Exceeded +449,St. Catharines,11000,1330,917,259,28.24%,Not met +450,Thunder Bay,2200,587,183,246,134.43%,Exceeded +451,Toronto,285000,71762,23750,18422,77.57%,Not met +452,Vaughan,42000,8521,3500,2348,67.09%,Not met +453,Waterloo,16000,2420,1333,857,64.29%,Not met +454,Welland,4300,1929,358,382,106.70%,Exceeded +455,Whitby,18000,3263,1500,557,37.13%,Not met +456,Whitchurch-Stouffville,6500,1624,542,42,7.75%,Not met +457,Windsor,13000,2293,1083,1456,134.44%,Exceeded +458,Woodstock,5500,717,458,105,22.93%,Not met +459,Municipalities without targets,172700,41816,14392,8081,56.15%,Not applicable