A Python script to visualize the weather of 500+ cities across the world of varying distance from the equator. To accomplish this, simple Python library, and the OpenWeatherMap API have been used.
To build a series of scatter plots to showcase the following relationships:
- Temperature (F) vs. Latitude
- Humidity (%) vs. Latitude
- Cloudiness (%) vs. Latitude
- Wind Speed (mph) vs. Latitude
This project:
- Randomly selects at least 500 unique (non-repeat) cities based on latitude and longitude.
- Performs a weather check on each of the cities using a series of successive API calls.
- Includes a print log of each city as it's being processed with the city number and city name.
- Saves both a CSV of all data retrieved and png images for each scatter plot.
- Includes a written description of three observable trends based on the data.
Observations:
- Temperature is more near the equator, as we go far from equator, temprature decreases.
- Humidity is more in north side of equator.
- Windspeed is more in north side of equator.
- There is no relation between Coudiness and Latitude
Data is more powerful when we share it with others! Let's take look by creating a dashboard showing off the analysis that has been done above.
Created a visualization dashboard website using visualizations. Specifically, weather data has been plotted.
In building this dashboard, created individual pages for each plot and a means by which we can navigate between them. These pages will contain the visualizations and their corresponding explanations. There is a landing page, a page where we can see a comparison of all of the plots, and another page where we can view the data used to build them.
The website consists of 7 pages total, including:
- A landing page containing:
- An explanation of the project.
- Links to each visualizations page.
- Four visualization pages, each with:
- A descriptive title and heading tag.
- The plot/visualization itself for the selected comparison.
- A paragraph describing the plot and its significance.
- A "Comparisons" page that:
- Contains all of the visualizations on the same page so we can easily visually compare them.
- Uses a bootstrap grid for the visualizations.
- The grid must be two visualizations across on screens medium and larger, and 1 across on extra-small and small screens.
- A "Data" page that:
- Displays a responsive table containing the data used in the visualizations.
- The table must be a bootstrap table component.
- The data must come from exporting the
.csv
file as HTML, or converting it to HTML. Try using a tool you already know, pandas. Pandas has a nifty method approprately calledto_html
that allows you to generate a HTML table from a pandas dataframe. See the documentation here
- Displays a responsive table containing the data used in the visualizations.
The website has a navigation menu that:
- Has the name of the site on the left of the nav which allows users to return to the landing page from any page.
- Contains a dropdown on the right of the navbar named "Plots" which provides links to each individual visualization page.
- Provides two more links on the right: "Comparisons" which links to the comparisons page, and "Data" which links to the data page.
- Is responsive (using media queries). The nav must have similar behavior as the screenshots "Navigation Menu" section (notice the background color change).
Finally, the website to GitHub pages. https://bhavinidata.github.io/Web-Design-Challenge/
This section contains screenshots of each page that must be built, at varying screen widths. These are a guide; you can meet the requirements without having the pages look exactly like the below images.
You'll build four of these, one for each visualization. Here's an example of one: