Saturday, September 18, 2021

10-Python: Plotting Simple Bar Chart

 Assalam wbt. Jumpa lagi.

Post yang lalu anda telah lihat bagaimana untuk membuat pembetulan kepada mana-mana elemen yang tidak diingini di dalam operasi korang. Kali ini dengan menggunakan dataset yang sama daripada data2.dat kita akan cuba untuk membuat carta bar menggunakan library matplotlib. 

############# start copy script from here ###############################

import matplotlib.pyplot as plt
import numpy as np

fname='data2.dat'
data1=np.loadtxt(fname,skiprows=1)
data1[data1<0.0]=0.0
data1[data1==0.01]=0.0
data1[np.isnan(data1)]=0.0

## convert float to integer sebagai label carta
station1=data1[:,0]
station1=station1.astype(int) 

lat1=data1[:,1]
lon1=data1[:,2]
rain1=data1[:,3]
rain2=data1[:,4]
rain3=data1[:,5]


N = 17  ## total bar
ind = np.arange(N)  # set total bar in array
width = 0.95       # the width of the bars

### single color bar
colors='red' 

### set layout map and size
fig = plt.figure(figsize=(5,4))

## main command plot bar chart
plt.bar(ind, rain1, width, color=colors, tick_label = station1,
        edgecolor="black",linewidth=0.5)

##set x-axis label as vertical
plt.xticks(rotation=90)

## naming the x-axis
plt.xlabel('Meteorological Stations')

## naming the y-axis
plt.ylabel('Hourly Rainfall')

## plot title
plt.title('Rainfall Bar Chart')
 

#################AUTO FILE NAMING######################
import inspect
frame = inspect.currentframe()
path = inspect.getfile(frame)
fname = path.split('.')[0]
plt.savefig(fname + ".jpg",dpi=280,bbox_inches='tight')
#######################################################
plt.show()

############# end your copy here ###############################

Output image
Catatan:
a) fname di dalam data1=np.loadtxt(fname,skiprows=1)merujuk kepada kaedah lain untuk memanggil nama fail data namun harus di declare terdahulu sebelum statement sebagai fname='data2.dat'.

b)fig = plt.figure(figsize=(5,4)) adalah format setting plotting area berkeluasan 5 x 4 inci di mana paksi x adalah 5 inci dan paksi y adalah 4 inci.

c) station1=station1.astype(int) adalah bagi menukar float value kepada integer. Nilai asal station adalah berbentuk code mewakili nama station, seharusnya bagi tujuan label pada paksi x nama station haruslah integer.

d) Auto file naming merujuk kepada kaedah menyimpan fail output sama seperti fail skrip yang ditetapkan. Sebagai contoh jika anda tetapkan latihan ini sebagai Python1.py makanya imej output korang juga akan mengikut nama yang sama iaitu Python1.png (*.png). Anda boleh simpan output imej sebagai *.jpg atau *.tiff.

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...