Saturday, September 18, 2021

11-Python: Setting Plotting Frame

 Assalam wbt. Jumpa lagi.

Post lepas kita telah mempelajari bagaimana untuk membuat satu plot carta bar di dalam satu frame. Kali ini kita cuba untuk membuat setting jika ingin membuat banyak plot di dalam satu frame. Mungkin 2 plot, 3 plot, 4 plot atau lebih daripada itu. Untuk post kali ini kita akan melihat terlebih dahulu basic command jika ingin membuat banyak plot di dalam satu frame menggunakan library numpy and matplotlib.

Seperti biasa sila copy skrip berikut dan simpan ke dalam folder kerja korang menggunakan nama fail masing-masing dengan extension *.py.

### copy script from here ##
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size':12,'font.family':'arial'}) 
plt.rcParams['xtick.labelsize']=10
plt.rcParams['ytick.labelsize']=10


## SETTING PLOT AREA 4 IMAGES IN (2 X 2)#
## setting frame size

fig = plt.figure(figsize=(10,10)) 

plt.subplot(2,2,1)
plt.text(0.3, 0.5, "(2,2,1)", fontsize=30)

plt.subplot(2,2,2)
plt.text(0.3, 0.5, "(2,2,2)", fontsize=30)

plt.subplot(2,2,3)
plt.text(0.3, 0.5, "(2,2,3)", fontsize=30)

plt.subplot(2,2,4)
plt.text(0.3, 0.5, "(2,2,4)", fontsize=30)

#### METHOD SAVING IMAGE USING CURRENT FILE NAME
import inspect
frame = inspect.currentframe()
path = inspect.getfile(frame)
fname = path.split('.')[0]
plt.savefig(fname + ".png",dpi=280, bbox_inches='tight')
plt.show()

### end your copy here ##

Paparan Imej output:



Catatan:
a) (2,2,1) merujuk kepada imej adalah terdiri daripada 2 x 2 (2 baris dan 2 lajur) di mana 1 adalah merujuk kepada imej PERTAMA dan seterusnya. 
b) Jika mahu plot sejumlah imej lain, sila gunakan panduan skrip di bawah

## SETTING PLOT AREA 3 IMAGES IN (1x3) ###

fig = plt.figure(figsize=(10,6)) 

plt.subplot(1,3,1)
plt.text(0.3, 0.5, "(1,3,1)", fontsize=30)

plt.subplot(1,3,2)
plt.text(0.3, 0.5, "(1,3,2)", fontsize=30)

plt.subplot(1,3,3)
plt.text(0.3, 0.5, "(1,3,3)", fontsize=30)

Paparan Imej output:


## SETTING PLOT AREA 2 IMAGES IN (1x2) ###
fig = plt.figure(figsize=(10,8)) 

plt.subplot(1,2,1)
plt.text(0.3, 0.5, "(1,2,1)", fontsize=30)

plt.subplot(1,2,2)
plt.text(0.3, 0.5, "(1,2,2)", fontsize=30)

Paparan Imej output:


## SETTING PLOT AREA 2 IMAGES IN (2 x 1) ###

fig = plt.figure(figsize=(6,10)) 

plt.subplot(2,1,1)
plt.text(0.3, 0.5, "(2,1,1)", fontsize=30)

plt.subplot(2,1,2)
plt.text(0.3, 0.5, "(2,1,2)", fontsize=30)

Paparan Imej output:

Catatan:
a) fig = plt.figure(figsize=(6,10)) harus diubah suai mengikut kesesuaian saiz plot.
b) plt.text(0.3, 0.5, "(2,1,2)", fontsize=30) merujuk kepada menambah teks "(2,1,2)" atau sebarang teks ke dalam area plot. 0.3 merujuk kepada point paksi x dan 0.5 point di paksi y.


Selamat mencuba!



No comments:

Post a Comment

23-Python : Plotting Temperature Histogram

  Assalamualaikum wbt dan jumpa lagi. Post kali ini kita akan cuba untuk membuat analisa taburan suhu purata setiap data yang telah dibelakk...