from datetime import datetime
print(f'Päivitetty {datetime.now().date()} / Aki Taanila')
Päivitetty 2023-12-10 / Aki Taanila
Tämä on jatkoa sarjan edellisille osille
Jos esitettävät arvosarjat ovat eri suuruusluokkaa, niin kahden arvoakselin käyttö on paikallaan (kummallekin arvosarjalle oma arvoakseli).
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('white')
# 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
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 voin tehdä normaalisti. Toista arvosarjaa varten luon twinx-toiminnolla kaavion, jolla on oma arvoakseli, mutta yhteinen x-akseli ensimmäisen arvosarjan kanssa.
# Indeksi viivakaaviona
df['Indeksi'].plot(color='C0', figsize=(8, 5))
# Indeksille ja sen akselille käytössä olevien värien ensimmäinen väri 'C0'
plt.ylabel('Indeksi', color='C0')
# Vaakasuuntainen taustaviivoitus, jolle väri 'C0'
plt.grid(axis='y', color='C0')
# Jakoviivojen nimiöille 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(kind='bar', color='C1')
# Jakoviivoille ja niiden nimiöille väri 'C1'
plt.tick_params(axis='y', length=5, color='C1', labelcolor='C1')
Seuraava osa https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib7.ipynb käsittelee usean kaavion sijoittamista samaan kuvioon