Kalau kalian menggunakan excel ada juga lho cara membuat grafik dual axis. Namun tidak usah kuatir, di matplotlib sudah ada koq, malah jauh lebih gampang dan mudah diatur. Ploting Grafik Dual Axis sangat berguna sekali ketika kita menemui sebuah data yang mempunyai range nilai yang berbeda. Ceritanya akan berbeda kalau range sama, biasanya sih cukup menggunakan teknik hold atau overlay grafik. Contoh realnya ketika memplotkan sebuah data saham yang terdiri dari porsi penguasaan oleh investor asing serta harga. Melalui teknik dual axis akan diketahui apakah ada hubungan antara kepemilikan asing dengan harga suatu saham yang disimpan dalam format *.csv seperti berikut saham.csv
periode,porsi,harga 01/2020,45,1860 02/2020,47,1750 03/2020,50,1700 04/2020,58,1760 05/2020,65,1750 06/2020,67,1600
Kalian bisa melihat range yang sangat berbeda antar porsi dan harga yaitu untuk
- Porsi dengan satuan persen mempunyai range 0 sampai 100%
- Harga dengan satuan rupiah mempunyai range disesuaikan dengan fraksi harga, misalkan untuk data diatas mempunyai range 1500 sampai dengan 2000
Bila data diatas di plotkan, maka hasilnya sebagai berikut
Bisa disimpulkan ketika investor asing banyak membeli saham, harga semakin turun yang artinya investor lokal (mungkin saja) sedang melakukan cut loss. Bagaimana menurut kalian?
# -*- coding: utf-8 -*- """ Created on Thu Jul 2 07:19:16 2020 @author: mulka """ import numpy as np import matplotlib.pyplot as plt import pandas # read data file data = pandas.read_csv('saham.csv',sep=',') periode = data['periode'] porsi = data['porsi'] harga = data['harga'] x_index = np.arange(len(periode)) width = 0.25 fig, ax = plt.subplots() garis1 = ax.plot(x_index, porsi, marker='.', color='royalblue') ax2 = ax.twinx() garis2 = ax2.plot(x_index, harga, marker='.', color='#cc0000') #sumbu y1 ax.set_title('Pergerakan harga dan porsi kepemilikan asing') ax.set_ylim(0,100) #batas sumbu y dari 0 sampai 100 ax.set_yticks(np.arange(0,110,20)) #satuan percent ax.set_ylabel('porsi (%)') #sumbu y2 ax2.set_ylabel('harga (Rp.)') ax2.set_ylim(1500,2000) #batas sumbu y dari 1500 sampai 2000 disesuaikan ax2.set_xticks(x_index) ax2.set_xticklabels(list(periode), fontsize='small', ha='center') ax.grid(axis='y',ls='dashed') kolomLegen = ['porsi','harga'] ax.legend((garis1[0], garis2[0]), kolomLegen, fontsize='x-small', loc='upper left') for i, txt in enumerate(porsi): ax.annotate(txt, (x_index[i],porsi[i])) for i, txt in enumerate(harga): ax2.annotate(txt, (x_index[i],harga[i])) # finishing pyrfig = plt.figure(1) pyrfig.set_figwidth(8) pyrfig.set_figheight(5) #fig.savefig(r'D:\path\tempat\simpan\file\grafikAKIkematianIbu.png',bbox_inches='tight') #plt.close(pyrfig) plt.show()
Ploting data dual axis di Excel
Bagi kalian yang masih penasaran cara melakukan ploting data dual axis di excel, caranya cukup mudah koq. Kalian dulu pasangan tabel
Kemudian akses dialog chart pada excel seperti berikut
akan tampil kotak dialog chart excel, pilih yang combo, atur sedemikian rupa
hasil akhir plot grafik dual axis di excel sebagai berikut, bisa kalian lengkapi dengan axis title, legend, serta table pada chart excel.