Tải bản đầy đủ (.pdf) (16 trang)

Bài 6 xử lý và trực quan hoá dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.13 MB, 16 trang )

ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

BÀI 6
TRỰC QUAN HÓA DỮ LIỆU
I. Vẽ biểu đồ-plotting
Vẽ biểu đồ là một trong những kỹ năng cần thiết và rất quan trọng, đặc trong lĩnh vực
Data Analyst hay Data Science. Bài viết giới thiệu một thư viện phổ biến nhất trong
Python là Matplotlib giúp các bạn có thể trực quan hóa dữ liệu. Mặc dù hiện nay có khá
nhiều thư viện cũng được đánh giá tốt như Seaborn, Hiplot (của facebook) trong python
hay ggplot trong R; Matplotlib tuy cũ nhưng vẫn được sử dụng rộng rãi hơn cả cho mục
đích Data Visualization.
Để sử dụng thư viện Matplotlib, bước đầu tiên sau khi thiết lập môi trường Python là
chúng ta phải cài đặt package phải không nào. Sử dụng pip install matplotlib để cài đặt
version mới nhất.
Sau đó ta import thư viện bằng dòng code :
import matplotlib.pyplot as plt

Dưới đây là những hướng dẫn cơ bản để vẽ biểu đồ với Matplotlib.
1. Tạo biểu đồ đơn giản
Sau đây ta vẽ một biểu đồ đơn giản với phương thức plot(), mặc định nó sẽ vẽ biểu đồ
đường. Với các tham số tối thiểu là list các tọa độ x, list tọa độ y (lưu ý 2 list này phải có
độ dài bằng nhau).
Ví dụ minh họa như sau:

Trang 1


ĐỀ CƯƠNG BÀI GIẢNG


IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

Để thay đổi một chút, ta có thể thêm tham số về định dạng vào.
Chẳng hạn như :
- tham số màu : r - red, g -green, b - blue, y - yellow, …
- định dạng đường : - (đường thẳng), -- (đường nét đứt), nếu không truyền tham số là
không vẽ đường.
- định dạng đỉnh : * (đỉnh hình bơng tuyết), D (đỉnh hình thoi), s (đỉnh hình vng), go
(chấm trịn), ...
Ví dụ : ta thêm tham số b tức là màu blue, D tức là đỉnh hình thoi và -- tức là cạnh nét
đứt.

Trang 2


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

2. Vẽ nhiều đối tượng trong cùng một biểu đồ
Ta sẽ thêm tiêu đề cho biểu đồ, tiêu đề cho trục tọa độ và thêm chú thích, ví dụ
như sau:

Đoạn code trong hình ta thấy :

Trang 3


ĐỀ CƯƠNG BÀI GIẢNG


IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

- tham số label trong hàm plt.plot() là để đặt tên cho một điểm, tên này sẽ xuất
hiện trong chú thích.
- plt.xlabel hay plt.ylabel là để đặt tên cho trục x và trục y.
- plt.title là để đặt tên cho biểu đồ
- plt.legend sẽ đi tìm các thành phần chứa tham số label và đưa vào chú thích
3. Thay đổi kích thước của biểu đồ
Ta sử dụng phương thức figure() để thay đổi kích thước của biểu đồ, tham số truyền vào
là figsize.
Ví dụ được mơ tả như dưới đây:

Ở ví dụ trên tham số truyền vào là figsize=(10,7) trong đó 10 là tỉ lệ độ dài trục ngang (x)
và 7 là tỉ lệ độ dài trục dọc (y)
Ta cũng thấy có plt.xlim và plt.ylim. Hai phương thức này dùng để xác định hệ số chia
trên trục tương ứng.
4. Vẽ hai biểu đồ cạnh nhau
Trang 4


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

Đầu tiên ta sử dụng phương thức subplots() để tạo ra 2 biểu đồ. Sử dụng subplots() các
đối tượng Axes sẽ được trả về. Sau đó ta có thể set các thuộc tính của từng đối tượng này
sử dụng ax1.set hay ax2.set như trên (mỗi đối tượng axes định nghĩa cho một biểu đồ)
Tham số (1,2) trong hàm subplots có thể hiểu là "một hàng, hai cột" - tương ứng bạn sẽ
vẽ ra 2 biểu đồ cạnh nhau. Nếu chẳng hạn bạn thay (1,2) bằng (2,2), bạn sẽ được 4 biểu
đồ.

Tham số dpi là độ phân giải của hình vẽ.
Tham số sharey = True cho phép chia sẻ thuộc tính giữa 2 trục x và y.
5. Vẽ trên nhiều biểu đồ sử dụng vòng lặp

Trang 5


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

Đây là một kỹ thuật khá hữu ích, nhất là khi ta muốn vẽ biểu đồ từ một cơ sở dữ liệu hay
file dữ liệu. Đầu tiên ta tạo một subplot với số biểu đồ mà ta muốn vẽ lên. Sau đó các đối
tượng Axes được tạo ra và ta sẽ sử dụng các đối tượng này trong vòng lặp for để đưa dữ
liệu vào các biểu đồ tương ứng.
II. Biểu đồ phân tán -Scatter Plot
Biểu đồ phân tán được sử dụng để vẽ các điểm dữ liệu trên trục hoành và trục tung để thể
hiện mức độ ảnh hưởng của một biến này bởi biến khác. Mỗi hàng trong bảng dữ liệu
được biểu thị bằng một điểm đánh dấu, vị trí phụ thuộc vào giá trị của nó trong các cột
được đặt trên trục X và Y. Một biến thứ ba có thể được đặt để tương ứng với màu sắc
hoặc kích thước của các điểm đánh dấu, do đó thêm một chiều khác vào biểu đồ.
Ví dụ dưới đây vẽ một biểu đồ phân tán của các cấp lớp so với cấp độ của nam và nữ
bằng hai màu sắc khác nhau.
import matplotlib.pyplot as plt
girls_grades = [89, 90, 70, 89, 100, 80, 90, 100, 80, 34]
boys_grades = [30, 29, 49, 48, 100, 48, 38, 45, 20, 30]
grades_range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

Trang 6



ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
ax.scatter(grades_range, girls_grades, color='r')
ax.scatter(grades_range, boys_grades, color='b')
ax.set_xlabel('Grades Range')
ax.set_ylabel('Grades Scored')
ax.set_title('scatter plot')
plt.show()

III.

Biểu đồ cột – Bar

Vẽ biểu đồ cột trong python (Matplotlib Bar).
Ta có thể sử dụng hàm bar() để vẽ biểu đồ cột trong python.
Ví dụ:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['Apple','Banana','Chery','Lemon', 'Guava'])
y = np.array([100,200,500,300,600])

Trang 7


ĐỀ CƯƠNG BÀI GIẢNG


IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

plt.bar(x,y)
plt.show()

Kết quả:

Ngồi ra ta cịn có thể vẽ biểu đồ cột theo phương ngang (Horizontal Bars). Để vẽ biểu
đồ cột theo phương ngang ta sử dụng hàm barh().
Ví dụ:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['Apple','Banana','Chery','Lemon', 'Guava'])
y = np.array([100,200,500,300,600])
plt.barh(x,y)
plt.show()

Kết quả:

Trang 8


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

IV. Biểu đồ hình trịn-Pie
Sử dụng hàm pie() để vẽ biểu đồ hình trịn.
Ví dụ:

import matplotlib.pyplot as plt
import numpy as np
x = np.array(['Apple','Banana','Chery','Lemon', 'Guava'])
y = np.array([100,200,500,300,600])
myexplode = [0,0,0.2,0,0]
mycolor = ['Pink','green','red','blue','yellow']
plt.pie(y, labels=x, explode = myexplode, colors = mycolor, shadow = True)
plt.legend()
plt.show()

Kết quả:

Trang 9


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

Ta có thể tùy chỉnh biểu đồ theo ý muốn của mình bởi các tham số : explode, colors,
shadow, labels. Bây giờ chúng ta sẽ đi tìm hiểu chi tiết từng tham số.
+ explode : là tham số cho phép bạn dùng để biểu thị cái nào đó mà bạn muốn nó nổi bật.
Ví dụ tạo nổi bật cho biểu đồ cho giá trị Chery .
Ví dụ:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['Apple','Banana','Chery','Lemon', 'Guava'])
y = np.array([100,200,500,300,600])
myexplode = [0,0,0.2,0,0]
plt.pie(y, labels=x, explode = myexplode)

plt.show()

Kết quả:

Trang 10


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

+ colors : là tham số cho phép bạn thiết lập màu sắc theo ý muốn của bạn.
Ví dụ thay đổi màu sắc biểu đồ trong python.
Ví dụ:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['Apple','Banana','Chery','Lemon', 'Guava'])
y = np.array([100,200,500,300,600])
mycolor = ['Pink','green','red','blue','yellow']
plt.pie(y, labels=x, colors = mycolor)
plt.show()
Kết quả:

Trang 11


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC


+ shadow : là tham số cho phép bạn thiết lập bóng đổ cho biểu đồ. Để thiết lập bóng đổ
cho biểu đồ bạn thiết lập shadow=True.
Ví dụ tạo bóng đổ cho biểu đồ.
Ví dụ:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['Apple','Banana','Chery','Lemon', 'Guava'])
y = np.array([100,200,500,300,600])
myexplode = [0,0,0.2,0,0]
mycolor = ['Pink','green','red','blue','yellow']
plt.pie(y, labels=x, explode = myexplode, colors = mycolor, shadow = True)
plt.show()

Kết quả:

+ labels : là tham số cho bạn thiết lập tên nhãn cho biểu đồ.
Ví dụ thiết lập tên nhãn cho biểu đồ trong python
Ví dụ:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['Apple','Banana','Chery','Lemon', 'Guava'])
y = np.array([100,200,500,300,600])

Trang 12


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC


plt.pie(y, labels=x)
plt.show()

Kết quả:

+ Legend : hàm legend() dùng để hiển thị chú giải, chú thích của biểu đồ.
Ví dụ hiển thị chú thích cho biểu đồ trong python.
Ví dụ:
import matplotlib.pyplot as plt
import numpy as np
x = np.array(['Apple','Banana','Chery','Lemon', 'Guava'])
y = np.array([100,200,500,300,600])
myexplode = [0,0,0.2,0,0]
mycolor = ['Pink','green','red','blue','yellow']
plt.pie(y, labels=x, explode = myexplode, colors = mycolor, shadow = True)
plt.legend()
plt.show()
Kết quả:

Trang 13


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

V. Biểu đồ tần suất-Histogram
Histogram là sự phân bố dữ liệu số. Nó ước lượng phân phối xác suất của một biến liên
tục và là một dạng biểu đồ thanh. Để tạo biểu đồ, hãy làm theo các bước sau:



Bin phạm vi giá trị.



Chia toàn bộ phạm vi giá trị thành một loạt các khoảng.



Đếm xem có bao nhiêu giá trị rơi vào mỗi khoảng.

Các bins thường được chỉ định là các khoảng liên tiếp, không chồng chéo của một biến.
Hàm matplotlib.pyplot.hist () vẽ một biểu đồ, tính tốn và vẽ biểu đồ của x.
Tham số :
Bảng sau liệt kê các tham số cho histogram:
x

mảng hoặc chuỗi các mảng

bins

số nguyên hoặc chuỗi hoặc 'auto', tùy chọn

Thông số tùy chọn

Trang 14


ĐỀ CƯƠNG BÀI GIẢNG


IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

range

Phạm vi dưới và trên của bin

density

Nếu true, phần tử đầu tiên của bộ giá trị trả về sẽ là số đếm được chuẩn hóa
để tạo thành mật độ xác suất

cumulative

Nếu true, thì biểu đồ được tính tốn trong đó mỗi thùng cung cấp số lượng
trong thùng đó cộng với tất cả các thùng cho các giá trị nhỏ hơn

histtype

Loại histogram để vẽ. Mặc định là 'bar'

Ví dụ sau vẽ biểu đồ về điểm của các sinh viên trong một lớp học. Bốn khoảng 0-25, 2650, 51-75 và 76-100 được xác định. Biểu đồ cho thấy số học sinh rơi vào phạm vi này.
from matplotlib import pyplot as plt
import numpy as np
fig,ax = plt.subplots(1,1)
a = np.array([22,87,5,43,56,73,55,54,11,20,51,5,79,31,27])
ax.hist(a, bins = [0,25,50,75,100])
ax.set_title("histogram of result")
ax.set_xticks([0,25,50,75,100])
ax.set_xlabel('marks')
ax.set_ylabel('no. of students')

plt.show()

Kết quả:

Trang 15


ĐỀ CƯƠNG BÀI GIẢNG

IT6073-NGƠN NGỮ LẬP TRÌNH KHOA HỌC

Trang 16



×