You are on page 1of 30

4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Bộ môn Toán kinh tế


Học phần: KHOA HỌC DỮ LIỆU CHO KINH DOANH

CHƯƠNG 2. TRỰC QUAN HOÁ DỮ


LIỆU
ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Giới thiệu matplotlib


Vẽ biểu đồ với matplotlib (line, curve, bar, scatter, pie, histogram, boxplot, …)
Trực quan hoá dùng seaborn
Trực quan hoá dùng các hàm trong pandas
Trực quan hoá với plotly và một số công cụ khác
Vẽ biểu đồ địa lý
Trực quan hoá dữ liệu kinh doanh
Bài tập

NỘI DUNG

1
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

GIỚI THIỆU MATPLOTLIB

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Giới thiệu Matplotlib ( https://matplotlib.org/ )


Matplotlib là một trong những thư viện Python phổ biến nhất được sử dụng để trực quan hóa dữ liệu.
Matplotlib là thư viện chuyên về vẽ biểu đồ, mở rộng từ numpy, để tạo các đồ thị 2D từ dữ liệu trong các
mảng
Nó cung cấp một API hướng đối tượng giúp nhúng các plot trong các ứng dụng và sử dụng bộ công cụ
GUI Python như PyQt, WxPythonotTkinter. Ngoài ra có thể được sử dụng trong Python và IPython shell,
Jupyter Notebook và các máy chủ web.
Matplotlib có giao diện được đặt tên là Pylab, được thiết kế giống với MATLAB - ngôn ngữ lập trình độc
quyền được phát triển bởi MathWorks. Matplotlib cùng với NumPy có thể được coi là mã nguồn mở tương
đương với MATLAB.
Matplotlib hỗ trợ rất nhiều loại biểu đồ, đặc biệt là các loại được sử dụng trong nghiên cứu hoặc kinh tế
như biểu đồ dòng, đường, tần suất (histograms), phổ, tương quan, errorcharts, scatterplots,…
Matplotlib ban đầu được viết bởi John D. Hunter vào năm 2003. Phiên bản ổn định hiện tại là 2.2.0 được
phát hành vào tháng 1 năm 2018.

2
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Một số biểu đồ vẽ bằng matplotlib

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Một số biểu đồ vẽ bằng matplotlib

3
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Một số biểu đồ vẽ bằng matplotlib

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Các khái niệm chung


Một đồ thị Matplotlib có thể được phân loại thành nhiều
phần như dưới đây:
Figure: cửa sổ/khu vực chứa tất cả những gì bạn sẽ vẽ
trên đó.
Axes: Thành phần chính của một figure là các axes
(những khung nhỏ hơn để vẽ hình lên đó). Một figure có
thể chứa một hoặc nhiều axes. Nói cách khác, figure chỉ
là khung chứa, chính các axes mới là khu vực các hình
vẽ được vẽ lên.
Axis: dòng số giống như các đối tượng và đảm nhiệm
việc tạo các giới hạn biểu đồ.
Artist: những gì được nhìn thấy trên figure là một artist
như Text objects, Line2D objects, collection objects. Hầu
hết các Artists được gắn với Axes.

4
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Cài đặt Matplotlib


Nếu sử dụng Anaconda, gõ : conda install matplotlib
Trên python terminal hoặc console: pip install matplotlib
Trên Ipython hoặc notebook: !pip install matplotlib

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Khai báo thư viện Matplotlib


# import các thư viện matplotlib và numpy
import matplotlib as mpl
import matplotlib.pyplot as plt
# from matplotlib import pyplot as plt
import numpy as np
# câu lệnh của Jupyter Notebook, giúp vẽ các đồ thị bên
trong các cell
%matplotlib inline

10

5
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

VẼ BIỂU ĐỒ VỚI MATPLOTLIB

11

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Các bước vẽ biểu đồ với matplotlib


Điều kiện cần: đã có sẵn dữ liệu
Có thể có 4 bước cơ bản:
1. Chọn loại biểu đồ phù hợp
Tùy thuộc rất nhiều vào loại dữ liệu
Tùy thuộc vào mục đích sử dụng của người dùng
2. Thiết lập các thông số cho biểu đồ
Thông số của các trục, ý nghĩa, tỉ lệ chia,…
Các điểm nhấn trên bản đồ
Góc nhìn, mẫu tô, màu và các chi tiết khác
Các thông tin bổ sung
3. Vẽ biểu đồ
4. Lưu ra file

12

6
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Các kiểu Plots


Bar : bar plot
Barh : Lập biểu đồ thanh ngang.
Boxplot : box và whisker plot
Hist : Vẽ biểu đồ
hist2d : Vẽ biểu đồ 2D
Pie : Vẽ biểu đồ hình tròn
Plot : Vẽ các đường và / hoặc điểm đánh dấu cho Axes.
Polar : vẽ polar plot
Scatter : Lập biểu đồ phân tán của x vs y.
Stackplot : Vẽ một biểu đồ khu vực xếp chồng lên nhau.
Stem : Tạo stem plot
Step : Lập sơ đồ từng bước.
Quiver : Vẽ trường mũi tên 2-D.

13

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Các hàm Pyplot


Hàm image Yscale : Đặt tỷ lệ của trục y.
Imread : Đọc một hình ảnh từ một tệp vào một mảng. Yticks : Nhận hoặc đặt giới hạn y của các vị trí và nhãn đánh
dấu hiện tại.
Imsave : Lưu một mảng dưới dạng tệp hình ảnh.
Hàm Figure
Imshow : Hiển thị một hình ảnh trên các trục.
Figtext : thêm text vào figture
Hàm Axis
Figure : Tạo figture mới
Axes : Thêm axes vào hình
Show : Hiển thị figture
Text : Thêm text vào axes
Savefig : Lưu trữ figure hiện tại
Title : Đặt tiêu đề của các trục hiện tại.
Close : Đóng cửa sổ figture
Xlabel : Đặt trục x của trục hiện tại.
Xlim : Lấy hoặc đặt giới hạn x của các trục hiện tại.
Xscale : Đặt tỷ lệ của trục x.
Xticks : Nhận hoặc đặt giới hạn x của các vị trí và nhãn đánh
dấu hiện tạ
Ylabel : Đặt axis y của trục hiện tại.
Ylim : Nhận hoặc đặt giới hạn y của các trục hiện tại.

14

7
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Thiết lập cách hiển thị đồ thi style.use()


Để kiểm tra các style có sẵn ta sử dụng: plt.style.available
Thay đổi style bằng phương thức: plt.style.use(style_name)
Ví dụ về các style:

15

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Hiển thị đồ thị ra màn hình – phương thức show()


Gọi phương thức show()của pyplot để hiện đồ thị hiện tại

plt.show()

16

8
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Phương thức plot()


Hàm pyplot() là hàm quan trọng nhất trong
thư viện matplotlib, được sử dụng để vẽ dữ liệu
2D
Phương thức plot() giúp vẽ một danh sách
các điểm thành một đồ thị (đồ thị đường)
Phương thức này có nhiều tham số nhưng phạm
vi bài học sẽ tập trung tham số là hai danh sách
(Python List) với giá trị là tọa độ x và y.
Cú pháp cơ bản phương thức plot() :
plt.plot(x_list, y_list)
2 tham số tối thiểu là list các tọa độ x, list tọa độ y
2 list tọa độ này phải có độ dài bằng nhau

17

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Phương thức plot()


Ngoài ra, có thể thêm tham số về định dạng:
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 vuông), go (chấm tròn), ...
Chú ý, phương thức plot() trả về một đối tượng
Python do đó để thực sự vẽ ra đồ thị, chúng ta cần gọi
phương thức show().
Ví dụ : Ở ví dụ này mình 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.

18

9
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Các ký tự định dạng


'-' : Kiểu đường liền nét
'-': Kiểu đường đứt nét
'-.' : Kiểu đường dấu gạch ngang
':': Kiểu đường chấm
'.' : Điểm đánh dấu
',': Điểm đánh dấu pixel
'o': Điểm đánh dấu vòng tròn
'v': Điểm đánh dấu tam giác_dưới
'^': Điểm đánh dấu tam giác_trên
'<' : Điểm đánh dấu tam giác_trái
'>' : Điểm đánh dấu tam giác_phải

19

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Các chữ viết tắt màu

Để hiển thị các vòng tròn đại diện cho các điểm, thay vì dòng trong ví dụ trên, ta có thể sử dụng “ob”
làm chuỗi định dạng trong hàm plot ()

20

10
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Thêm title cho biểu đồ, title cho trục tọa độ và thêm chú thích

• tham số label trong hàm plt.plot() : đặ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 : đặt tên cho trục x
và trục y.
• plt.title : đặt tên cho biểu đồ
• plt.legend : tìm các thành phần chứa tham
số label và đưa vào chú thích

21

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Thay đổi kích thước của biểu đồ


figure() : thay đổi kích thước của biểu đồ, tham số truyền vào là figsize.
plt.xlim và plt.ylim : xác định hệ số chia trên trục tương ứng.

22

11
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ĐỒ THỊ ĐƯỜNG (SIMPLE LINE PLOT)

fig = plt.figure() fig: là đối tượng chủ, để quản lý


tất cả các phần tử khác của đồ thị
ax = plt.axes()
ax: quản lý các phần tử của đồ thị
như a bounding box với ticks và label
x = np.linspace(0, 10, 1000)
ax.plot(x, np.sin(x));

23

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ĐỒ THỊ ĐƯỜNG (SIMPLE LINE PLOT)

Vẽ nhiều đồ thị trên một hình

plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x));

24

12
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ĐỒ THỊ ĐƯỜNG: HIỆU CHỈNH MÀU SẮC

# specify color by name


plt.plot(x, np.sin(x - 0), color='blue')
# short color code (rgbcmyk)
plt.plot(x, np.sin(x - 1), color='g')
# Grayscale between 0 and 1
plt.plot(x, np.sin(x - 2), color='0.75')
# Hex code (RRGGBB from 00 to FF)
plt.plot(x, np.sin(x - 3), color='#FFDD44')
# RGB tuple, values 0 to 1
plt.plot(x, np.sin(x - 4), color=(1.0,0.2,0.3))
# all HTML color names supported
plt.plot(x, np.sin(x - 5), color='chartreuse')

Tham khảo mã màu: https://htmlcolorcodes.com/

25

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ĐỒ THỊ ĐƯỜNG: KIỂU ĐƯỜNG

plt.plot(x, x + 0, linestyle='solid')
plt.plot(x, x + 1, linestyle='dashed')
plt.plot(x, x + 2, linestyle='dashdot')
plt.plot(x, x + 3, linestyle='dotted');

# For short, you can use the following codes:


plt.plot(x, x + 4, linestyle='-') # solid
plt.plot(x, x + 5, linestyle='--') # dashed
plt.plot(x, x + 6, linestyle='-.') # dashdot
plt.plot(x, x + 7, linestyle=':'); # dotted

26

13
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ĐỒ THỊ ĐƯỜNG: KẾT HỢP KIỂU ĐƯỜNG VÀ MÀU SẮC

# solid green
plt.plot(x, x + 0, '-g')
# dashed cyan
plt.plot(x, x + 1, '--c’)
# dashdot black
plt.plot(x, x + 2, '-.k’)
# dotted red
plt.plot(x, x + 3, ':r')

Dùng các ký tự trọng (Red/Green/Blue)


và CMYK (Cyan/Magenta/Yellow/blacK)

27

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ĐỒ THỊ ĐƯỜNG: GIỚI HẠN TRÊN CÁC TRỤC

plt.plot(x, np.sin(x))

plt.xlim(-1, 11)
plt.ylim(-1.5, 1.5);

28

14
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ĐỒ THỊ ĐƯỜNG: GIỚI HẠN TRÊN CÁC TRỤC

plt.plot(x, np.sin(x))

Giá trị giảm


plt.xlim(10, 0)
plt.ylim(1.2, -1.2);

29

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

ĐỒ THỊ ĐƯỜNG: GIỚI HẠN TRÊN CÁC TRỤC


Dùng cấu trúc[xmin, xmax, ymin, ymax] cho axis

plt.plot(x, np.sin(x))
plt.axis([-1, 11, -1.5, 1.5]);

30

15
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

31

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

TRỰC QUAN HOÁ DÙNG SEABORN

32

16
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Giới thiệu Seaborn


Seaborn là một thư viện Python được xây dựng dựa trên Matplotlib được sử dụng để tạo đồ thị thống kê.
Nó đơn giản hóa một số cú pháp giúp cho việc vẽ biểu đồ đơn giản hơn.

33

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Một số biểu đồ trong thư viện Seaborn

34

17
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Một số biểu đồ trong thư viện Seaborn

35

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

seaborn.displot(data=None, *, x=None, y=None, hue=None, row=None, col=None, weights=N


one, kind='hist', rug=False, rug_kws=None, log_scale=None, legend=True, palette=None,
hue_order=None, hue_norm=None, color=None, col_wrap=None, row_order=None, col_order=
None, height=5, aspect=1, facet_kws=None, **kwargs)

data: pandas.DataFrame, numpy.ndarray, mapping, or sequence


x, y: vectors or keys in data
Variables that specify positions on the x and y axes.

hue: vector or key in data


Semantic variable that is mapped to determine the color of plot elements.

row, col: vectors or keys in data


Variables that define subsets to plot on different facets.

kind: {“hist”, “kde”, “ecdf”}

36

18
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

RELATIONAL PLOTS

sns.lineplot(data = df, y = 'Price', x = 'Mfg_Year')


sns.lineplot(data = df, y = 'KM', x = 'Mfg_Year')

37

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

RELATIONAL PLOTS

sns.lineplot(data = df, y = 'Price', x = 'Mfg_Year', hue = 'Met_Color')

38

19
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

DISTRIBUTION PLOTS

sns.histplot(data = df, x = 'Price')

39

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

DISTRIBUTION PLOTS

sns.histplot(data = df, x = 'Price', binwidth = 1000, kde = True, hue = 'Met_Color')

40

20
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

41

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Hạn chế của Seaborn


Tất cả đồ thị, biểu đồ của seaborn đều là static (tĩnh).
Biểu đồ chỉ chỉ ra những gì được show ra trên màn hình và không thể xem chi
tiết từng ô trong biểu đồ hoặc giá trị tại 1 khoảng thời gian nào đó.
Người dùng cũng không thể di chuột hay click để hiển thị thông tin chi tiết trên
biểu đồ.

42

21
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

TRỰC QUAN HOÁ DÙNG HÀM TRONG PANDAS

43

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

TRỰC QUAN HOÁ VỚI PLOTLY

44

22
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Giới thiệu Plotly


Plotly là thư viện Python hỗ trợ người
dùng trực quan hóa dữ liệu tương tác. Nó
cho phép chúng ta vẽ đồ thị tương tác trực
quan hơn và thuyết phục người nghe hơn
so với matplotlib hay là seaborn.
Plotly có thể đáp ứng được hạn chế của
Seaborn.
Plotly có khả năng thực hiện những
functions "Interactive Visualization".
"Interactive Visualization" có thể giúp tăng
thêm cảm giác thu hút cũng như có thể trình
bày dữ liệu một cách trực quan hơn nữa đối
với người nghe.

45

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Những kiểu đồ thị có thể vẽ với Plotly


Tất cả những dạng đồ thị có
thể thực hiện với Matplotlib
và Seaborn
Biểu đồ thống kê
Biểu đồ khoa học
Biểu đồ Tài chính
Bản đồ địa chất

Hiện tại thư viện Plotly hỗ trợ đa dạng


các loại biểu đồ với 15 loại biểu đồ cơ
bản, 12 loại biểu đồ Thống kê, 20 loại
biểu đồ Khoa học, 8 loại biểu đồ Tài
chính, 12 loại bản đồ, 14 loại biểu đồ 3D
và nhiều tiện ích khác.

46

23
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Mô-đun plotly.express
Mô-đun plotly.express (thường được import với alias px) chứa các hàm có thể tạo đồ thị từ bộ số liệu và
được gọi là Plotly Express hoặc PX.
Plotly Express là một phần tích hợp của thư viện plotly và được khuyến nghị để tạo đồ thị cho hầu hết các
số liệu phổ biến.
Mọi hàm Plotly Express đều sử dụng các đối tượng đồ thị bên trong và trả về một đối tượng
plotly.graph_objects.
Plotly Express cung cấp hơn 30 chức năng để tạo các loại đồ thị khác nhau.

47

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Plotly Express hiện bao gồm các loại đồ thị


Basics: scatter, line, area, bar, funnel, timeline
Part-of-Whole: pie, sunburst, treemap, icicle, funnel_area
1D Distributions: histogram, box, violin, strip, ecdf
2D Distributions: density_heatmap, density_contour
Matrix or Image Input: imshow
3-Dimensional: scatter_3d, line_3d
Multidimensional: scatter_matrix, parallel_coordinates, parallel_categories
Tile Maps: scatter_mapbox, line_mapbox, choropleth_mapbox, density_mapbox
Outline Maps: scatter_geo, line_geo, choropleth
Polar Charts: scatter_polar, line_polar, bar_polar
Ternary Charts: scatter_ternary, line_ternary

48

24
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Install and Import Plotly


Sử dụng pip để cài đặt Plotly
pip install plotly
pip install cufflinks
** Nên cài đặt hai thư viện NumPy và Pandas trước khi cài Plotly.
** Plotly Express là giao diện cấp cao, dễ sử dụng của Plotly, hoạt động trên dữ liệu "gọn gàng" ("tidy" data) và tạo ra
các số liệu dễ tạo kiểu.
import plotly.express as px

49

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Biểu đồ phân tán (Scatter Plot) với plotly.express


Mỗi điểm dữ liệu được biểu diễn dưới dạng điểm đánh dấu, có vị trí được cho bởi các cột x và y.
px.scatter (px as plotly.express)

# x và y là các đối tượng dạng mảng


import plotly.express as px
fig = px.scatter(x=[0, 1, 1, 2, 3, 4],
y=[0, 1, 4, 16, 9, 16])
fig.show()

Khi rê chuột vào mỗi điểm thì giá trị x và y của điểm đó sẽ được
hiển thị. Vì vậy các loại biểu đồ trong Plotly có tính tương tác tốt.
Phía trên biểu đồ có các icon với các chức năng khác nhau.

50

25
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Biểu đồ phân tán (Scatter Plot) với plotly.graph_objects (tt)


Chức năng hàm Scatter()cung cấp nhiều kiểu vẽ biểu đồ phân tán
go.Scatter (go as plotly.graph_objects)
Thông số Scattergl() trong hàm Scatter()có thể tương tác với một lượng lớn dữ liệu.
import plotly.graph_objects as go
import numpy as np

''' Vẽ 150,000 điểm dữ liệu ngẫu nhiên được tạo ra nhờ numpy
Dãy màu rainbow với màu sắc mỗi điểm là ngẫu nhiên '''
N = 150000
fig = go.Figure(data=go.Scattergl(
x = np.random.randn(N),
y = np.random.randn(N),
mode='markers',
marker=dict(
color=np.random.randn(N),
colorscale='rainbow',
line_width=1
)
))

fig.show()

51

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Biểu đồ đường thẳng (Line Charts) với plotly.express


Sử dụng hàm px.line mỗi điểm dữ liệu được biểu diễn dưới dạng một đỉnh (vị trí được cho bởi các cột
x và y) của dấu đa tuyến (polyline mark) trong không gian 2D.
import plotly.express as px
df = px.data.gapminder().query("country=='Vietnam'")
fig = px.line(df, x="year", y="lifeExp",
title='Tuổi thọ trung bình ở Việt Nam')
fig.show()

** Ví dụ trên minh họa code vẽ đồ thị Tuổi thọ trung bình ở Việt
Nam. Lấy dữ liệu từ gapminder, một DataFrame có sẵn trong pandas.

52

26
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Đồ thị đường thẳng (Line Charts) với plotly.graph_objects (tt)


Sử dụng hàm go.Scatter từ thư viện plotly.graph_objects.
Hàm có thể sử dụng với phạm vi rộng hơn hai hàm scatter và line trong
plotly.express, có cả cho các điểm vẽ (makers) hoặc các đường, tùy thuộc vào giá trị
của mode.
Các mode trong go.Scatter: lines (đường), markers (điểm vẽ) và lines+markers (đường + điểm
vẽ)

53

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Đồ thị của hàm bậc hai y(x)= x**2+3*x+2


# Đồ thị của hàm bậc hai y(x)= x**2+3*x+2
import plotly.graph_objects as go
import numpy as np
# Lấy vùng giá trị x từ 0 đến 14
x = np.arange(15)

# Vẽ đồ thị
fig = go.Figure(data=go.Scatter(x=x, y=x**2+3*x+2))

# Chỉnh sửa Layout


fig.update_layout(title='Hàm y(x)=x^2+3x+2',
xaxis_title='x',
yaxis_title='y(x)')
fig.show()

54

27
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Các công cụ khác có thể sử dụng để trực quan hóa dữ liệu


ChartBlocks: https://www.chartblocks.com/en/
ChartBlocks là một nền tảng phần mềm trực tuyến cho phép xây dựng các biểu đồ có thể
nhúng, có thể chia sẻ nhanh chóng và dễ dàng.
Xây dựng biểu đồ nhanh để người thiết kế biểu đồ dễ sử dụng, chọn loại biểu đồ và sau đó tùy
chỉnh biểu đồ theo nhu cầu.
Kéo dữ liệu từ hầu hết mọi nguồn và tạo biểu đồ kéo dữ liệu từ nhiều nguồn. Trình hướng dẫn
nhập dữ liệu giúp trực quan hóa dữ liệu.
Nhúng biểu đồ trên bất kỳ trang web chia sẻ nào, được sử dụng tích hợp các công cụ chia sẻ
phương tiện truyền thông xã hội để gửi biểu đồ trực tiếp lên Facebook và Twitter.
Có thể xuất biểu đồ dưới dạng đồ họa vector có thể chỉnh sửa để sử dụng trong Illustrator và
các gói đồ họa khác.

55

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

Các công cụ khác có thể sử dụng để trực quan hóa dữ liệu


Google Charts: https://developers.google.com/chart/
Biểu đồ Google là một công cụ cực kỳ đơn giản cho phép dễ dàng tạo biểu đồ từ một số dữ
liệu và nhúng nó vào trang web.
Người dung nhúng dữ liệu và định dạng các tham số trong yêu cầu HTTP và Google trả về
hình ảnh PNG của biểu đồ.
Nhiều loại biểu đồ được hỗ trợ và bằng cách đưa yêu cầu vào thẻ hình ảnh, sau đó người
dùng chỉ cần đưa biểu đồ vào trang web.

56

28
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

VẼ BIỂU ĐỒ ĐỊA LÝ

57

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

TRỰC QUAN HOÁ DỮ LIỆU KINH DOANH

58

29
4/5/2022

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

BÀI TẬP
Cho đồ thị hàm số y=14x3−32x2+5y
Khảo sát sự biến thiên, vẽ đồ thị đã cho.
Tìm giá trị của m để phương trình x3−6x2+m = 0 có 3 nghiệm phân biệt.

59

ThS. Huỳnh Đỗ Bảo Châu – ThS. Nguyễn Hoàng Ân

THANK YOU

60

30

You might also like