Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
92 views

Introduction To Data Visualization With Matplotlib Chapter2

The document discusses visualizing time-series data with Matplotlib. It introduces plotting CO2 and temperature data from 1958 to 2016 on the same axes. It demonstrates zooming in on specific decades and years. Functions are created for plotting multiple time-series with different colors and styles. The document concludes by exploring annotations to indicate points of interest on time-series plots.

Uploaded by

Fgpeqw
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views

Introduction To Data Visualization With Matplotlib Chapter2

The document discusses visualizing time-series data with Matplotlib. It introduces plotting CO2 and temperature data from 1958 to 2016 on the same axes. It demonstrates zooming in on specific decades and years. Functions are created for plotting multiple time-series with different colors and styles. The document concludes by exploring annotations to indicate points of interest on time-series plots.

Uploaded by

Fgpeqw
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

Plotting time-series

data
I N T R O D U C T I O N TO D ATA V I S U A L I Z AT I O N W I T H M AT P LOT L I B

Ariel Rokem
Data Scientist
Time-series data

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Climate change time-series
date,co2,relative_temp
1958-03-06,315.71,0.1
1958-04-06,317.45,0.01
1958-05-06,317.5,0.08
1958-06-06,-99.99,-0.05
1958-07-06,315.86,0.06
1958-08-06,314.93,-0.06
...
2016-08-06,402.27,0.98
2016-09-06,401.05,0.87
2016-10-06,401.59,0.89
2016-11-06,403.55,0.93

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


DateTimeIndex
climate_change.index

DatetimeIndex(['1958-03-06', '1958-04-06', '1958-05-06', '1958-06-06


'1958-07-06', '1958-08-06', '1958-09-06', '1958-10-06
'1958-11-06', '1958-12-06',
...
'2016-03-06', '2016-04-06', '2016-05-06', '2016-06-06
'2016-07-06', '2016-08-06', '2016-09-06', '2016-10-06
'2016-11-06', '2016-12-06'],
dtype='datetime64[ns]', name='date', length=706, freq=

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Time-series data
climate_change['relative_temp'] climate_change['co2']

0 0.10 0 315.71
1 0.01 1 317.45
2 0.08 2 317.50
3 -0.05 3 NaN
4 0.06 4 315.86
5 -0.06 5 314.93
6 -0.03 6 313.20
7 0.04 7 NaN
... ...
701 0.98 701 402.27
702 0.87 702 401.05
703 0.89 703 401.59
704 0.93 704 403.55
705 0.81 705 404.45
Name:co2, Length: 706, dtype: float64 Name:co2, Length: 706, dtype: float64

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Plotting time-series data
import matplotlib.pyplot as plt
fig, ax = plt.subplots()

ax.plot(climate_change.index, climate_change['co2'])
ax.set_xlabel('Time')
ax.set_ylabel('CO2 (ppm)')
plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Zooming in on a decade
sixties = climate_change["1960-01-01":"1969-12-31"]

fig, ax = plt.subplots()
ax.plot(sixties.index, sixties['co2'])
ax.set_xlabel('Time')
ax.set_ylabel('CO2 (ppm)')
plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Zooming in on one year
sixty_nine = climate_change["1969-01-01":"1969-12-31"]

fig, ax = plt.subplots()
ax.plot(sixty_nine.index, sixty_nine['co2'])
ax.set_xlabel('Time')
ax.set_ylabel('CO2 (ppm)')
plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Let's practice time-
series plotting!
I N T R O D U C T I O N TO D ATA V I S U A L I Z AT I O N W I T H M AT P LOT L I B
Plotting time-series
with different
variables
I N T R O D U C T I O N TO D ATA V I S U A L I Z AT I O N W I T H M AT P LOT L I B

Ariel Rokem
Data Scientist
Plotting two time-series together
import pandas as pd
climate_change = pd.read_csv('climate_change.csv',
parse_dates=["date"],
index_col="date")

climate_change

co2 relative_temp
date
1958-03-06 315.71 0.10
1958-04-06 317.45 0.01
1958-07-06 315.86 0.06
... ... ...
2016-11-06 403.55 0.93
2016-12-06 404.45 0.81

[706 rows x 2 columns]

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Plotting two time-series together
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(climate_change.index, climate_change["co2"])

ax.plot(climate_change.index, climate_change["relative_temp"])

ax.set_xlabel('Time')
ax.set_ylabel('CO2 (ppm) / Relative temperature')
plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Using twin axes
fig, ax = plt.subplots()
ax.plot(climate_change.index, climate_change["co2"])
ax.set_xlabel('Time')
ax.set_ylabel('CO2 (ppm)')

ax2 = ax.twinx()

ax2.plot(climate_change.index, climate_change["relative_temp"])
ax2.set_ylabel('Relative temperature (Celsius)')
plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Separating variables by color
fig, ax = plt.subplots()
ax.plot(climate_change.index, climate_change["co2"], color='blue')
ax.set_xlabel('Time')
ax.set_ylabel('CO2 (ppm)', color='blue')

ax2 = ax.twinx()
ax2.plot(climate_change.index, climate_change["relative_temp"],
color='red')
ax2.set_ylabel('Relative temperature (Celsius)', color='red')
plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Coloring the ticks
fig, ax = plt.subplots()
ax.plot(climate_change.index, climate_change["co2"],
color='blue')
ax.set_xlabel('Time')
ax.set_ylabel('CO2 (ppm)', color='blue')

ax.tick_params('y', colors='blue')

ax2 = ax.twinx()
ax2.plot(climate_change.index,
climate_change["relative_temp"],
color='red')
ax2.set_ylabel('Relative temperature (Celsius)',
color='red')

ax2.tick_params('y', colors='red')

plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Coloring the ticks

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


A function that plots time-series
def plot_timeseries(axes, x, y, color, xlabel, ylabel):
axes.plot(x, y, color=color)
axes.set_xlabel(xlabel)
axes.set_ylabel(ylabel, color=color)
axes.tick_params('y', colors=color)

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Using our function
fig, ax = plt.subplots()
plot_timeseries(ax, climate_change.index, climate_change['co2'],
'blue', 'Time', 'CO2 (ppm)')

ax2 = ax.twinx()
plot_timeseries(ax, climate_change.index,
climate_change['relative_temp'],
'red', 'Time', 'Relative temperature (Celsius)')

plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Create your own
function!
I N T R O D U C T I O N TO D ATA V I S U A L I Z AT I O N W I T H M AT P LOT L I B
Annotating time-
series data
I N T R O D U C T I O N TO D ATA V I S U A L I Z AT I O N W I T H M AT P LOT L I B

Ariel Rokem
Data Scientist
Time-series data

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Annotation
fig, ax = plt.subplots()
plot_timeseries(ax, climate_change.index, climate_change['co2'],
'blue', 'Time', 'CO2 (ppm)')
ax2 = ax.twinx()
plot_timeseries(ax2, climate_change.index,
climate_change['relative_temp'],
'red', 'Time', 'Relative temperature (Celsius)')

ax2.annotate(">1 degree", xy=[pd.TimeStamp("2015-10-06"), 1])

plt.show()

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Positioning the text
ax2.annotate(">1 degree",
xy=(pd.Timestamp('2015-10-06'), 1),
xytext=(pd.Timestamp('2008-10-06'), -0.2))

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Adding arrows to annotation
ax2.annotate(">1 degree",
xy=(pd.Timestamp('2015-10-06'), 1),
xytext=(pd.Timestamp('2008-10-06'), -0.2),
arrowprops={})

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Customizing arrow properties
ax2.annotate(">1 degree",
xy=(pd.Timestamp('2015-10-06'), 1),
xytext=(pd.Timestamp('2008-10-06'), -0.2),
arrowprops={"arrowstyle":"->", "color":"gray"})

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Customizing annotations
https://matplotlib.org/users/annotations.html

INTRODUCTION TO DATA VISUALIZATION WITH MATPLOTLIB


Practice annotating
plots!
I N T R O D U C T I O N TO D ATA V I S U A L I Z AT I O N W I T H M AT P LOT L I B

You might also like