Skip to content
Introduction to Data Visualization with Matplotlib
Introduction to Data Visualization with Matplotlib
Run the hidden code cell below to import the data used in this course.
# Importing the course packages
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Importing the course datasets
climate_change = pd.read_csv('datasets/climate_change.csv', parse_dates=["date"], index_col="date")
medals = pd.read_csv('datasets/medals_by_country_2016.csv', index_col=0)
summer_2016 = pd.read_csv('datasets/summer2016.csv')
austin_weather = pd.read_csv("datasets/austin_weather.csv", index_col="DATE")
weather = pd.read_csv("datasets/seattle_weather.csv", index_col="DATE")
# Some pre-processing on the weather datasets, including adding a month column
seattle_weather = weather[weather["STATION"] == "USW00094290"]
month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
seattle_weather["MONTH"] = month
austin_weather["MONTH"] = monthTake Notes
Add notes about the concepts you've learned and code cells with code you want to keep.
Add your notes here
# Add your code snippets hereExplore Datasets
Use the DataFrames imported in the first cell to explore the data and practice your skills!
- Using
austin_weatherandseattle_weather, create a Figure with an array of two Axes objects that share a y-axis range (MONTHSin this case). Plot Seattle's and Austin'sMLY-TAVG-NORMAL(for average temperature) in the top Axes and plot theirMLY-PRCP-NORMAL(for average precipitation) in the bottom axes. The cities should have different colors and the line style should be different between precipitation and temperature. Make sure to label your viz! - Using
climate_change, create a twin Axes object with the shared x-axis as time. There should be two lines of different colors not sharing a y-axis:co2andrelative_temp. Only include dates from the 2000s and annotate the first date at whichco2exceeded 400. - Create a scatter plot from
medalscomparing the number of Gold medals vs the number of Silver medals with each point labeled with the country name. - Explore if the distribution of
Agevaries in different sports by creating histograms fromsummer_2016. - Try out the different Matplotlib styles available and save your visualizations as a PNG file.
climate_changefig, ax = plt.subplots()
plt.title = 'Climate change'
ax.plot(climate_change.index, climate_change.co2)
ax.set_xlabel('Time (years)')
ax.set_ylabel('CO2 emissions (ppm)')
plt.show()fig, ax = plt.subplots(2,1)
ax[0].plot(climate_change.index, climate_change.co2, linewidth = '0.5')
ax[0].set_title('Evolution of carbon dioxide emissions over time')
ax[0].set_xlabel('Time (years)')
ax[0].set_ylabel('CO2 emissions (ppm)')
ax[1].plot(climate_change.index, climate_change.relative_temp, linewidth = 0.5, color = 'red')
ax[1].set_title('Evolution of the relative temperature over time')
ax[1].set_xlabel('Time (years)')
ax[1].set_ylabel('Relative temperature (Celsius)')
fig.tight_layout(pad=2.0)
plt.show()plt.style.use('fivethirtyeight')
fig = plt.figure(figsize=(40, 40))
ax = plt.subplot(2, 1, 1, frameon=True)
ax.plot(climate_change.index, climate_change.co2, linewidth = 1.5, color = 'blue')
ax.set_title('Evolution over time', fontweight ="bold", fontsize = 60.0)
ax.set_xlabel('Time (years)', fontsize = 40.0 )
ax.set_ylabel('CO2 emissions (ppm)', fontsize = 40.0)
ax.tick_params(axis='x', labelsize=30)
ax.tick_params(axis='y', labelsize=30)
ax.autoscale(enable=True, axis='both', tight=True)
ax2 = plt.subplot(2, 1, 2, frameon = True)
ax2.plot(climate_change.index, climate_change.relative_temp, linewidth = 0.8, color = 'red')
ax2.set_xlabel('Time (years)', fontsize = 40.0 )
ax2.set_ylabel('Relative temperature (Celsius)', fontsize = 40.0 )
ax2.tick_params(axis='x', labelsize=30)
ax2.tick_params(axis='y', labelsize=30)
ax2.autoscale(enable=True, axis='both', tight=True)fig = plt.figure(figsize=(40, 40))
ax = plt.subplot(2, 1, 1, frameon=True)
ax.plot(climate_change.index, climate_change.co2, linewidth = 1.5, color = 'blue')
ax.set_title('Evolution over time', fontweight ="bold", fontsize = 60.0)
ax.set_xlabel('Time (years)', fontsize = 40.0 )
ax.set_ylabel('CO2 emissions (ppm)', fontsize = 40.0)
ax.tick_params(axis='x', labelsize=30)
ax.tick_params(axis='y', labelsize=30)
ax.autoscale(enable=True, axis='both', tight=True)
ax2 = plt.subplot(2, 1, 2, frameon = True)
ax2.plot(climate_change.index, climate_change.relative_temp, linewidth = 0.8, color = 'red')
ax2.set_xlabel('Time (years)', fontsize = 40.0 )
ax2.set_ylabel('Relative temperature (Celsius)', fontsize = 40.0 )
ax2.tick_params(axis='x', labelsize=30)
ax2.tick_params(axis='y', labelsize=30)
ax2.autoscale(enable=True, axis='both', tight=True)plt.style.use('default')
fig, ax = plt.subplots()
ax.plot(climate_change.index, climate_change.co2, linewidth = 0.8, color = 'blue')
ax.set_title('Evolution over time')
ax.set_xlabel('Time (years)')
ax.set_ylabel('CO2 emissions (ppm)')
ax2 = ax.twinx()
ax2.plot(climate_change.index, climate_change.relative_temp, linewidth = 0.8, color = 'red')
ax2.set_xlabel('Time (years)')
ax2.set_ylabel('Relative temperature (Celsius)')
plt.show()eighties = climate_change['1980':'1989']
nineties = climate_change['1990':'1999']fig, ax = plt.subplots()
ax.set_title('Evolution during the 80s')
ax.plot(eighties.index, eighties.co2, linewidth = 1.5, color = 'blue')
ax.set_xlabel('Time (years)')
ax.set_ylabel('CO2 emissions (ppm)', color = 'blue')
ax.tick_params('y', colors = 'blue')
ax2 = ax.twinx()
ax2.plot(eighties.index, eighties.relative_temp, linewidth = 1.5, color = 'red')
ax2.set_xlabel('Time (years)')
ax2.set_ylabel('Relative temperature (Celsius)', color = 'red')
ax2.tick_params('y', colors = 'red')
plt.show()fig, ax = plt.subplots()
ax.set_title('Evolution during the 90s')
ax.plot(nineties.index, nineties.co2, linewidth = 1.5, color = 'blue')
ax.set_xlabel('Time (years)')
ax.set_ylabel('CO2 emissions (ppm)', color = 'blue')
ax.tick_params('y', colors = 'blue')
ax2 = ax.twinx()
ax2.plot(nineties.index, nineties.relative_temp, linewidth = 1.5, color = 'red')
ax2.set_xlabel('Time (years)')
ax2.set_ylabel('Relative temperature (Celsius)', color = 'r')
ax2.tick_params('y', colors = 'red')
plt.show()