#!/usr/bin/env python # coding: utf-8 # In[1]: from datetime import datetime print(f'Päivitetty {datetime.now().date()} / Aki Taanila') # # Matplotlib 6 - kahden arvoakselin kaavio # # Tämä on jatkoa sarjan edellisille osille # # * https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib1.ipynb # * https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib2.ipynb # * https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib3.ipynb # * https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib4.ipynb # * https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib5.ipynb # # Jos esitettävät arvosarjat ovat eri suuruusluokkaa, niin kahden arvoakselin käyttö on paikallaan (kummallekin arvosarjalle oma arvoakseli). # In[2]: import pandas as pd import matplotlib.pyplot as plt import seaborn as sns sns.set_style('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 # 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. # In[4]: # 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') # ## Lisätietoa # # Seuraava osa https://nbviewer.jupyter.org/github/taanila/kaaviot/blob/master/matplotlib7.ipynb käsittelee usean kaavion sijoittamista samaan kuvioon