Skip to content
1 hidden cell
Introduction to Data Visualization with Matplotlib
Introduction to Data Visualization with Matplotlib
1 hidden cell
Plotting time-series
# Import pandas as pd
import pandas as pd
# Read the data from file using read_csv
climate_change = pd.read_csv("datasets/climate_change.csv", parse_dates=['date'],index_col='date') import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# Add the time-series for "relative_temp" to the plot
ax.plot(climate_change.index,climate_change["relative_temp"])
# Set the x-axis label
ax.set_xlabel('Time')
# Set the y-axis label
ax.set_ylabel('Relative temperature (Celsius)')
# Show the figure
plt.show()import matplotlib.pyplot as plt
# Use plt.subplots to create fig and ax
fig, ax = plt.subplots()
# Create variable seventies with data from "1970-01-01" to "1979-12-31"
seventies = climate_change["1970-01-01":"1979-12-31"]
# Add the time-series for "co2" data from seventies to the plot
ax.plot(seventies.index, seventies["co2"])
# Show the figure
plt.show()import matplotlib.pyplot as plt
# Initalize a Figure and Axes
fig, ax = plt.subplots()
# Plot the CO2 variable in blue
ax.plot(climate_change.index, climate_change["co2"], color='blue')
# Create a twin Axes that shares the x-axis
ax2 = ax.twinx()
# Plot the relative temperature in red
ax2.plot(climate_change.index, climate_change["relative_temp"], color="red")
plt.show()# Define a function called plot_timeseries
def plot_timeseries(axes, x, y, color, xlabel, ylabel):
# Plot the inputs x,y in the provided color
axes.plot(x, y, color=color)
# Set the x-axis label
axes.set_xlabel(xlabel)
# Set the y-axis label
axes.set_ylabel(ylabel, color=color)
# Set the colors tick params for y-axis
axes.tick_params('y', colors=color)
fig, ax = plt.subplots()
# Plot the CO2 levels time-series in blue
plot_timeseries(ax, climate_change.index, climate_change["co2"], "blue", "Time (years)", "CO2 levels")
# Create a twin Axes object that shares the x-axis
ax2 = ax.twinx()
# Plot the relative temperature data in red
plot_timeseries(ax2, climate_change.index, climate_change["relative_temp"], "red", "Time (years)", "Relative temperature (Celsius)")
plt.show()fig, ax = plt.subplots()
# Plot the relative temperature data
ax.plot(climate_change.index, climate_change["relative_temp"])
# Annotate the date at which temperatures exceeded 1 degree
ax.annotate('>1 degree', xy=(pd.Timestamp('2015-10-06'), 1))
plt.show()fig, ax = plt.subplots()
# Plot the CO2 levels time-series in blue
plot_timeseries(ax, climate_change.index,climate_change["co2"], 'blue', "Time (years)", "CO2 levels")
# Create an Axes object that shares the x-axis
ax2 = ax.twinx()
# Plot the relative temperature data in red
plot_timeseries(ax2, climate_change.index , climate_change["relative_temp"], 'red', "Time (years)", "Relative temp (Celsius)")
# Annotate point with relative temperature >1 degree
ax2.annotate(">1 degree", xy=(pd.Timestamp('2015-10-06 00:00:00'), 1), xytext=(pd.Timestamp('2008-10-06'), -0.2),arrowprops={"arrowstyle":"->", "color":"gray"})
plt.show()Quantitative comparisons and statistical visualizations
fig, ax = plt.subplots()
# Plot a bar-chart of gold medals as a function of country
ax.bar(medals.index,medals["Gold"])
# Set the x-axis tick labels to the country names
ax.set_xticklabels(medals.index, rotation=90)
# Set the y-axis label
ax.set_ylabel("Number of medals")
plt.show()# Add bars for "Gold" with the label "Gold"
ax.bar(medals.index, medals["Gold"], label="Gold")
# Stack bars for "Silver" on top with label "Silver"
ax.bar(medals.index, medals["Silver"], bottom=medals["Gold"], label="Silver")
# Stack bars for "Bronze" on top of that with label "Bronze"
ax.bar(medals.index, medals["Bronze"], bottom=medals["Gold"] + medals["Silver"], label="Bronze")
# Display the legend
ax.legend()
plt.show()Explore 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.