In [1]:
from datetime import datetime
print(f'Päivitetty {datetime.now()}')
Päivitetty 2022-03-16 13:00:13.590522
In [2]:
import pandas as pd
import matplotlib.pyplot as plt

plt.style.use('seaborn-white')
In [3]:
# Luon dataframen Helsingin pörssin kehityksestä vuosina 1980 - 1990
df = pd.DataFrame({'Indeksi':[85,83,116,144,193,184,254,320,405,442,284],
                 'Myynti':[307954,566829,1241391,2109871,3009299,9184649,24933405,29726136,31719819,15343617,6318198]},
                 index=['1980','1981','1982','1983','1984','1985','1986','1987','1988','1989','1990'])
df
Out[3]:
Indeksi Myynti
1980 85 307954
1981 83 566829
1982 116 1241391
1983 144 2109871
1984 193 3009299
1985 184 9184649
1986 254 24933405
1987 320 29726136
1988 405 31719819
1989 442 15343617
1990 284 6318198

Ensimmäisen arvosarjan osalta kaavion voi tehdä normaalisti. Toista arvosarjaa varten luon twinx-toiminnolla kaavion, jolla on oma arvoakseli, mutta yhteinen x-akseli ensimmäisen arvosarjan kanssa.

In [4]:
# Indeksi viivakaaviona
df['Indeksi'].plot(color='C0', figsize=(10, 6))

# Indeksille ja sen akselille käytössä olevien värien ensimmäinen väri 'C0'
plt.ylabel('Indeksi', color='C0')

# Jakoviivoille väri 'C0'
plt.tick_params(axis='y', labelcolor='C0')

# Toinen kaavio, jolla on oma arvoakseli, mutta yhteinen x-akseli indeksin kanssa
plt.twinx()

# Myynnille ja sen akselille käytössä olevien värien toinen väri 'C1'
plt.ylabel('Myynti miljoonaa euroa', color='C1')

# Myynti pylväinä
(df['Myynti'] / 1000000).plot.bar(color='C1')

# Jakoviivoille väri 'C1'
plt.tick_params(axis='y', labelcolor='C1')

Lisätietoa

Seuraava osa https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib7.ipynb käsittelee usean kaavion sijoittamista samaan kuvioon