PYTHON IN DATA ANALYTICS
Lesson 3. Matplotlib
M R . L E T RU NG T H U C
Matplotlib
Matplotlib là một thư viện trực quan hoá dữ liệu phổ biến
trong Python.
Nó có thể vẽ được nhiều loại đồ thị khác nhau, và rất hữu ích
khi làm việc cùng với NumPy.
CODEFUN.COM.VN
2
Gồm 2 phần chính là: Figure & Axes
Figure: là cửa sổ chứa tất cả mọi thứ được vẽ trên nó. Nó có thể chứa nhiều thành phần độc
lập nhau như: các Axes khác nhau, tiêu đề, chú thích…
Axes: là khu vực chứa dữ liệu được vẽ lên và các tiêu đề, chú thích... gắn với nó.
CODEFUN.COM.VN
3
CODEFUN.COM.VN
4
Import thư viện Matplotlib:
CODEFUN.COM.VN
5
plt.figure(): tạo một figure
plt.plot(): vẽ đồ thị với giá trị trục x so với trục y
plt.xlabel(): đặt tên cho trục x
plt.ylabel(): đặt tên cho trục y
plt.title(): đặt tên cho figure
plt.grid(): hiển thị các đường lưới
plt.legend(): hiển thị chú thích cho đồ thị
plt.savefig(): lưu hình về máy
plt.show(): hiển thị hình vẽ
plt.clf(): xố hình hiện tại (hữu ích khi có nhiều figure trong 1 chương trình)
CODEFUN.COM.VN
6
Vẽ đồ thị hàm số 𝑦 = 𝑥 .
CODEFUN.COM.VN
7
Matplotlib cịn cho chúng ta có thể vẽ nhiều hình trên 1 Figure, sử dụng phương thức
.subplot() gồm có 3 thông số cụ thể:
nrows: số lượng hàng trên Figure
ncols: số lượng cột trên Figure
plot_number: vị trí của plot trong Figure
CODEFUN.COM.VN
8
Figure
Thành phần chính của figure là các axes. Một figure có thể chứa một hoặc nhiều axes.
Hay nói cách khác, figure chỉ là khung chứa, axes mới thật sự là nơi các hình được vẽ
lên.
Như vậy, sẽ khơng có những cách gọi kiểu như:
f̶̶i̶g̶.̶p̶l̶o̶t̶(̶)
f̶i̶ ̶g̶.̶x̶l̶a̶b̶e̶l̶()̶
...
CODEFUN.COM.VN
9
Khởi tạo đối tượng figure:
CODEFUN.COM.VN
10
Thêm các axes vào figure, bằng phương thức: .add_axes() gồm 4 đối số: bên trái, phía
dưới, chiều rộng, chiều cao.
CODEFUN.COM.VN
11
Thêm tiêu đề cho các axes bằng cách:
.set_xlabel(): tiêu đề trục x
.set_ylabel(): tiêu đề trục y
.set_title(): tiêu đề axes
CODEFUN.COM.VN
12
CODEFUN.COM.VN
13
Thuộc tính khác của Figure
Chỉnh kích thước của Figure bằng phương thức figsize (đơn vị inch).
dpi độ phân giải của hình, giá trị mặc định là 100. dpi càng cao thì chất lượng ảnh càng
cao.
Lưu Figure bằng fig.savefig().
CODEFUN.COM.VN
14
CODEFUN.COM.VN
15
Kiểm tra Figure đã lưu hay chưa?
CODEFUN.COM.VN
16
Xố nội dung của fig:
fig.clf()
plt.clf()
Đóng fig:
plt.close(<Tên fig>)
CODEFUN.COM.VN
17
Chỉnh trục toạ độ trong Figure
Hay còn gọi là Spines và Ticks của đồ thị.
Axis spine - đường ghi nhận ranh giới khu vực dữ liệu.
Spine là đường kết nối các dấu ticks trên trục và ghi nhận ranh giới của khu vực dữ
liệu.
CODEFUN.COM.VN
18
Chỉnh lại trục
CODEFUN.COM.VN
19
Vẽ đồ thị rời rạc
Vẽ đồ thị kiểu điểm: Trong nhiều trường hợp, muốn hiển thị từng điểm rời rạc thay vì
đường liên tục, việc chuyển đường thẳng sang điểm chúng ta sử dụng thêm các marker
trong .plot().
Các marker thông dụng:
CODEFUN.COM.VN
20
CODEFUN.COM.VN
21
Vẽ đồ thị rời rạc:
Có thể vừa vẽ điểm, vừa đường bằng cách sử dụng cách phương pháp sau:
Phương pháp 1: Nối các điểm.
CODEFUN.COM.VN
22
Các loại linestyle:
CODEFUN.COM.VN
23
Phương pháp 2: Vẽ một vài điểm trên đường.
CODEFUN.COM.VN
24
Một số loại biểu đồ khác
Biểu đồ pie (tỷ lệ)
plt.pie()
import matplotlib.pyplot as plotter
# The slice names of a population distribution pie chart
pieLabels = 'Asia', 'Africa', 'Europe', 'North America', 'South America'
# Population data
populationShare = [59.69, 16, 9.94, 7.79, 5.68]
figureObject, axesObject = plotter.subplots()
# Draw the pie chart
axesObject.pie(populationShare,
labels=pieLabels,
autopct='%1.2f',
startangle=90)
# Aspect ratio - equal means pie is a circle
axesObject.axis('equal')
plotter.show()
CODEFUN.COM.VN
25