Bài giảng Lập trình cho khoa học dữ liệu - Bài 8: Thư viện matplotlib

Giới thiệu matplotlib

▪ 3

“matplotlib”là thư viện chuyên về vẽ biểu đồ, mở

rộng từ numpy

▪ Cómục tiêu đơn giản hóa tối đa công việc vẽbiểu

đồ để “chỉ cần vài dònglệnh”

▪ Hỗ trợ rất nhiều loại biểu đồ, đặc biệt là cácloạ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,

▪ Cấutrúc của matplotlib gồm nhiều phần, phụcvụ

cho cácmục đích sửdụng khác nhau

pdf27 trang | Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 445 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Lập trình cho khoa học dữ liệu - Bài 8: Thư viện matplotlib, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LOGO LẬPTRÌNH CHO KHOA HỌC DỮ LIỆU Bài 8. Thư viện matplotlib Nội dung Giới thiệu vàcài đặt matplotlib1 Vẽ biểu đồ đơngiản2 2 Mộtsốloại biểu đồ trong matplotlib3 Bài tập 4 Giới thiệu matplotlib 3 ▪ “matplotlib” là thư viện chuyên về vẽ biểu đồ, mở rộng từ numpy ▪ Có mục tiêu đơn giản hóa tối đa công việc vẽbiểu đồ để “chỉ cần vài dòng lệnh” ▪ 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, ▪ Cấu trúc của matplotlib gồm nhiều phần, phụcvụ cho các mục đích sử dụng khác nhau Giới thiệu matplotlib 4 ▪ Ngoài các API liên quan đến vẽ biểu đồ, matplotlib còn bao gồm một số interface: Object-Oriented API, The Scripting Interface (pyplot), The MATLAB Interface (pylab) ▪ Các interface này giúp chúng ta thuận tiện trongviệc thiết lập chỉ số trước khi thực hiện vẽ biểu đồ ▪ Interface pylab hiện đã không còn được pháttriển ▪ Hầu hết các ví dụ trong slide này đều sử dụngpyplot ▪ Sử dụng Object-Oriented API hoặc trực tiếp các API của matplotlib sẽ cho phép can thiệp sâu hơn vào việc vẽ biểu đồ (hầu hết project sẽ không có nhucầu này) Cài đặt: “pip install matplotlib” 5 Một số biểu đồ vẽ bằng matplotlib 6 Một số biểu đồ vẽ bằng matplotlib 7 Một số biểu đồ vẽ bằng matplotlib 8 Vẽ biểu đồ đơn giản 9 Ví dụ: vẽ biểu đồ y = x2 import numpy asnp import matplotlib.pyplot as p l t # thư viện numpy # thư viện pyplot # chia đoạn từ -20 đến 20 thành 1000 đoạn x = np.linspace(-20, 20, 1000) # tính y y = x * x # vẽ biểu đồ tương quan giữa x vày p l t .p lo t (x , y) # hiển t h ị biểu đồ plt.show() Vẽ biểu đồ đơn giản 10 Ví dụ: vẽ biểu đồ hình sin import numpy asnp import matplotlib.pyplot as p l t # thư viện numpy # thư viện pyplot # chia đoạn từ 0 đến 3 thành các đoạn con 0.1 x = np.arange(0, 3 * np.pi, 0.1) # tính sin tương ứng với từng phần tử của x y = np.sin(x) # vẽ biểu đồ tương quan giữa x vày p l t .p lo t (x , y) # hiển t h ị biểu đồ plt.show() Vẽ biểu đồ đơn giản 11 Ví dụ: vẽ biểu đồ hình sin import numpy as np import matplotlib.pyplot as p l t x = np.arange(0, 3 * np.pi, 0.1) y = np.sin(x) p l t .p lo t (x, y) # các thông t i n bổ sung cho biểu đồ plt.xlabel('Trục X') plt.ylabel('Trục Y') plt.t i t le( 'Hàm Sin trong khoảng 0 đến 3pi ' ) plt.legend(['SIN(x)']) plt.show() Vẽ biểu đồ đơn giản 12 Ví dụ: vẽ biểu đồ hình sin và cos import numpy as np import matplotlib.pyplot as p l t x = np.arange(0, 3 * np.pi, 0.1) y_sin = np.sin(x) y_cos = np.cos(x) p l t .p lo t (x, y_sin) p l t .p lo t (x, y_cos) plt.xlabel('Trục X') plt.ylabel('Trục Y') plt.t i t le( 'Hàm SIN và COS trong khoảng 0 đến 3pi ' ) plt.legend(['SIN(x)', 'COS(x)']) plt.show() Vẽ biểu đồ đơn giản 13 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 Một số loại biểu đồ trong matplotlib 14 Line plot ▪ Biểu đồ thể hiện tương quan giữa X vàY ▪ Cúpháp: ▪ plot([x], y, [fmt], data=None,**kwargs) ▪ plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs) ▪ “fmt” là quy cách vẽđường ▪ “data” là nhãn của dữliệu ▪ **kwargs: tham số vẽđường ▪ Vẽ nhiều lần trên một biểuđồ ▪ Kết quả trả về là một listcác đối tượngLine2D Một số loại biểu đồ trong matplotlib 15 Line plot ▪ “fmt” gồm 3 phần fmt = '[color][marker][line]‘ ▪ [color] – viết tắt tênmàu: ▪ ‘b’ –blue ▪ ‘g’ –green ▪ ‘r’ –red ▪ ‘c’ –cyan ▪ ‘m’ –magenta ▪ ‘y’ –yellow ▪ ‘b’ –black ▪ ‘w’ –white ▪ #rrggbb – chỉ ra mã màu theo hệRGB Một số loại biểu đồ trong matplotlib 16 Line plot ▪ [marker] – cách đánh dấu dữ liệu: ▪ ‘o’ – hình tròn ▪ ‘v’ – tam giác xuống (‘^’, ‘’) ▪ ‘*’ – ngôisao ▪ ‘.’ – chấm ▪ ‘p’ – ngũgiác ▪ ▪ [line] – cách vẽ đường: ▪ ‘-’ – nét liền ▪ ‘--‘ – nét đứt ▪ ‘-.’ – gạchchấm ▪ ‘:’ – đườngchấm Một số loại biểu đồ trong matplotlib 17 Line plot import numpy as np import matplotlib.pyplot as p l t # chia đoạn 0-5 thành các bước 0.2 t = np.arange(0., 5 . , 0.2) # Vẽ 3 đường: # - màuđỏ nét đứt: y = x # - màuxanh dương, đánh dấu ô vuông: y = x^2 # - màuxanh l á , đánh dấu tam giác: y = x^3 p l t . p l o t ( t , t , ' r - - ' , t , t * *2 , ' b s ' , t , t * *3 , ' g ^ ' ) plt.show() Một số loại biểu đồ trong matplotlib 18 Biểu đồ dạng cột (bar plot) import matplotlib.pyplot as p l t D = { 'CTTT': 60, 'Kế toán': 310, 'Kinh t ế ' : 360, 'CNTT': 580, 'Cơ kh í ' : 340, 'Thủy văn': 290 } plt.bar(range(len(D)), D.values(), align='center') plt.xticks(range(len(D)), D.keys()) p l t . t i t le( 'Các ngành tuyển sinh của Đại học Thủy Lợi') plt.show() Một số loại biểu đồ trong matplotlib 19 Biểu đồ dạng cột (bar plot) import matplotlib.pyplot as p l t D = { 'CTTT': 60, 'Kế toán': 310, 'Kinh t ế ' : 360, 'CNTT': 580, 'Cơ kh í ' : 340, 'Thủy văn': 290 } plt.barh(range(len(D)), list(D.values())) plt.yticks(range(len(D)), D.keys()) p l t . t i t le( 'Các ngành tuyển sinh của Đại học Thủy Lợi') plt.show() Một số loại biểu đồ trong matplotlib 20 Biểu đồ dạng cột (bar plot) import matplotlib.pyplot as p l t plt.bar([1,3,5,7,9],[5,2,7,8,2], label="One") plt.bar([2,4,6,8,10],[8,6,2,5,6], label="Two", color='g') plt.legend() plt.xlabel( 'bar number') plt.ylabel( 'bar height') plt.t i t le( 'Ghép 2 biểu đồ') plt.show() Một số loại biểu đồ trong matplotlib 21 Biểu đồ bánh (pie chart) import matplotlib.pyplot as p l t D = { 'CTTT': 60, 'Kế toán': 310, 'Kinh t ế ' : 360, 'CNTT': 580, 'Cơ kh í ' : 340, 'Thủy văn': 290 } plt.pie(D.values(), labels=D.keys(), autopct='%1.1f%%') plt.axis('equal ') # trục x = trục y plt.show() Một số chức năng hữu ích 22 Chia thành các biểu đồ con import numpy as np import matplotlib.pyplot as p l t x = np.arange(0, 3 * np.pi, 0.1) y_sin = np.sin(x) y_cos = np.cos(x) plt.subplot(2, 1, 1) p l t .p lo t (x, y_sin) # biểu đồ 1 p l t . t i t le ( 'S IN(x) ' ) plt.subplot(2, 1, 2) # biểu đồ 2 pl t .p lo t (x, y_cos) plt.t i t le( 'COS(x) ') plt.show() Một số chức năng hữu ích 23 Chia thành các biểu đồ con import numpy as np import matplotlib.pyplot as p l t x1 = np.linspace(0.0, 5.0) x2 = np.linspace(0.0, 2.0) y1 = np.cos(2 * np.pi * x1) * np.exp(-x1) y2 = np.cos(2 * np.pi * x2) plt.subplot(2, 1, 1) plt.plot(x1, y1, ' o - ' ) plt.subplot(2, 1, 2) pl t .plot(x2, y2, ' . - ' ) plt.show() Một số chức năng hữu ích 24 Chia thành các biểu đồ con import matplot import numpy as np.random.seed data = np.rand f i g , axs = p l t axs[0, 0].hist axs[1, 0].scat axs[0, 1].plot axs[1, 1].hist plt.show() l ib.pyplot as p l t np (19680801) om.randn(2, 100) .subplots(2, 2, figsize=(5, 5)) (data[0]) ter(data[0], data[1]) (data[0], data[1]) 2d(data[0], data[1]) Một số chức năng hữu ích 25 Nén ảnh import matplotlib.pyplot as p l t import matplotlib.image as mpimg image = mpimg.imread("txnam.png") f i g , axs = plt.subplots(2, 2, figsize=(5, 5)) axs[0, 0].imshow(image) axs[1, 0].imshow(image) axs[0, 1].imshow(image) axs[1, 1].imshow(image) plt.show() Một số chức năng hữu ích 26 Lưu biểu đồ ra file import matplotlib.pyplot as p l t import matplotlib.image as mpimg image = mpimg.imread("txnam.png") f i g , axs = plt.subplots(2, 2, figsize=(5, 5)) axs[0, 0].imshow(image) axs[1, 0].imshow(image) axs[0, 1].imshow(image) axs[1, 1].imshow(image) plt.savefig( '1.png') plt.savefig( '1.pdf' ) LOGO

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_lap_trinh_cho_khoa_hoc_du_lieu_bai_8_thu_vien_matp.pdf