Matplotlib là một thư viện trực quan tuyệt vời trong Python cho các mảng 2D. Matplotlib là thư viện trực quan hóa dữ liệu đa nền tảng được xây dựng trên mảng NumPy và được thiết kế để hoạt động với ngăn xếp SciPy rộng hơn. Nó được giới thiệu bởi John Hunter vào năm 2002 Show
Một trong những lợi ích lớn nhất của trực quan hóa là nó cho phép chúng ta truy cập trực quan vào lượng dữ liệu khổng lồ dưới dạng hình ảnh dễ hiểu. Matplotlib bao gồm một số ô như đường, thanh, phân tán, biểu đồ, v.v. Cài đặt python -mpip install -U matplotlib
Các ô cơ bản trong MatplotlibMatplotlib đi kèm với nhiều ô khác nhau. Biểu đồ giúp hiểu xu hướng, mô hình và tạo mối tương quan. Chúng thường là công cụ để lập luận về thông tin định lượng. Một số ô mẫu được bao phủ ở đây cốt truyện dòng
0 1 2 3 4 5 4 7 4 9 4matplotlib 1matplotlib 2
1 2matplotlib 8 4 3 4# importing matplotlib module 2 4 9 4 5matplotlib 2 Bây giờ chúng ta sẽ tìm hiểu sâu về gói Matplotlib để trực quan hóa trong Python. Matplotlib là thư viện trực quan hóa dữ liệu đa nền tảng được xây dựng trên mảng NumPy và được thiết kế để hoạt động với ngăn xếp SciPy rộng hơn. Nó được John Hunter hình thành vào năm 2002, ban đầu là một bản vá cho IPython để cho phép vẽ sơ đồ kiểu MATLAB tương tác thông qua gnuplot từ dòng lệnh IPython. Người tạo ra IPython, Fernando Perez, lúc đó đang cố gắng hoàn thành bằng tiến sĩ và cho John biết rằng anh ấy sẽ không có thời gian để xem xét bản vá trong vài tháng. John coi đây là một gợi ý để tự mình bắt đầu và gói Matplotlib ra đời, với phiên bản 0. 1 phát hành năm 2003. Nó đã nhận được một sự thúc đẩy sớm khi nó được sử dụng làm gói âm mưu do Viện Khoa học Kính viễn vọng Không gian (những người đứng sau Kính viễn vọng Hubble) lựa chọn, hỗ trợ tài chính cho sự phát triển của Matplotlib và mở rộng đáng kể khả năng của nó Một trong những tính năng quan trọng nhất của Matplotlib là khả năng chơi tốt với nhiều hệ điều hành và phụ trợ đồ họa. Matplotlib hỗ trợ hàng tá phụ trợ và loại đầu ra, có nghĩa là bạn có thể tin tưởng nó sẽ hoạt động bất kể bạn đang sử dụng hệ điều hành nào hoặc định dạng đầu ra nào bạn muốn. Cách tiếp cận đa nền tảng, mọi thứ cho mọi người này là một trong những thế mạnh lớn của Matplotlib. Nó đã dẫn đến một cơ sở người dùng lớn, từ đó dẫn đến một cơ sở nhà phát triển tích cực và các công cụ mạnh mẽ của Matplotlib cũng như sự phổ biến trong thế giới Python khoa học Tuy nhiên, trong những năm gần đây, giao diện và phong cách của Matplotlib đã bắt đầu có tuổi. Các công cụ mới hơn như ggplot và ggvis trong ngôn ngữ R, cùng với các bộ công cụ trực quan hóa web dựa trên canvas D3js và HTML5, thường khiến Matplotlib có cảm giác cồng kềnh và lỗi thời. Tuy nhiên, tôi cho rằng chúng ta không thể bỏ qua sức mạnh của Matplotlib với tư cách là một công cụ đồ họa đa nền tảng đã được thử nghiệm kỹ lưỡng. Các phiên bản Matplotlib gần đây giúp thiết lập các kiểu vẽ đồ thị toàn cầu mới tương đối dễ dàng (xem Tùy chỉnh Matplotlib. Configurations và Style Sheets), và mọi người đã và đang phát triển các gói mới dựa trên các phần bên trong mạnh mẽ của nó để điều khiển Matplotlib thông qua các API sạch hơn, hiện đại hơn—ví dụ: Seaborn (được thảo luận trong Visualization With Seaborn), ggpy, HoloViews, Altair và thậm chí cả Pandas . Ngay cả với các trình bao bọc như thế này, vẫn thường hữu ích khi đi sâu vào cú pháp của Matplotlib để điều chỉnh đầu ra cốt truyện cuối cùng. Vì lý do này, tôi tin rằng bản thân Matplotlib sẽ vẫn là một phần quan trọng của ngăn xếp trực quan hóa dữ liệu, ngay cả khi các công cụ mới có nghĩa là cộng đồng dần dần không sử dụng trực tiếp API Matplotlib Mẹo Matplotlib chungTrước khi chúng tôi đi sâu vào chi tiết tạo trực quan hóa bằng Matplotlib, có một số điều hữu ích bạn nên biết về cách sử dụng gói Nhập MatplotlibGiống như chúng tôi sử dụng tốc ký plt.style.use('classic')5 cho NumPy và tốc ký plt.style.use('classic')6 cho Pandas, chúng tôi sẽ sử dụng một số tốc ký tiêu chuẩn để nhập Matplotlib Trong 1] import matplotlib as mpl import matplotlib.pyplot as plt Giao diện plt.style.use('classic')7 là thứ chúng ta sẽ sử dụng thường xuyên nhất, như chúng ta sẽ thấy trong suốt chương này Đặt kiểuChúng tôi sẽ sử dụng chỉ thị plt.style.use('classic')8 để chọn phong cách thẩm mỹ phù hợp cho các nhân vật của chúng tôi. Ở đây chúng tôi sẽ đặt kiểu plt.style.use('classic')9, đảm bảo rằng các ô chúng tôi tạo sử dụng kiểu Matplotlib cổ điển Trong 2] plt.style.use('classic') Trong suốt phần này, chúng tôi sẽ điều chỉnh phong cách này khi cần thiết. Lưu ý rằng các biểu định kiểu được sử dụng ở đây được hỗ trợ kể từ Matplotlib phiên bản 1. 5; . Để biết thêm thông tin về biểu định kiểu, hãy xem Tùy chỉnh Matplotlib. Cấu hình và Style Sheets # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show() 0 hay Không # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show() 0?Một hình ảnh trực quan mà bạn không thể nhìn thấy sẽ không được sử dụng nhiều, nhưng cách bạn xem các biểu đồ Matplotlib của mình phụ thuộc vào ngữ cảnh. Cách sử dụng Matplotlib tốt nhất khác nhau tùy thuộc vào cách bạn đang sử dụng nó; Âm mưu từ một kịch bảnNếu bạn đang sử dụng Matplotlib từ bên trong tập lệnh, thì hàm # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()2 là bạn của bạn. # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()2 bắt đầu một vòng lặp sự kiện, tìm kiếm tất cả các đối tượng hình hiện đang hoạt động và mở một hoặc nhiều cửa sổ tương tác hiển thị hình hoặc các hình của bạn Vì vậy, ví dụ, bạn có thể có một tệp tên là myplot. py chứa những điều sau đây # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show() Sau đó, bạn có thể chạy tập lệnh này từ dấu nhắc dòng lệnh, điều này sẽ dẫn đến một cửa sổ mở ra với hình của bạn được hiển thị
Lệnh # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()2 thực hiện rất nhiều điều, vì nó phải tương tác với phần phụ trợ đồ họa tương tác của hệ thống của bạn. Các chi tiết của hoạt động này có thể khác nhau rất nhiều từ hệ thống này sang hệ thống khác và thậm chí từ cài đặt này sang cài đặt khác, nhưng matplotlib cố gắng hết sức để ẩn tất cả các chi tiết này với bạn Một điều cần lưu ý. lệnh # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()2 chỉ nên được sử dụng một lần cho mỗi phiên Python và thường thấy nhất ở phần cuối của tập lệnh. Nhiều lệnh # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()0 có thể dẫn đến hành vi phụ thuộc vào chương trình phụ trợ không thể đoán trước và hầu hết nên tránh Vẽ từ vỏ IPythonCó thể rất thuận tiện khi sử dụng Matplotlib một cách tương tác trong lớp vỏ IPython (xem IPython. Ngoài Python bình thường). IPython được xây dựng để hoạt động tốt với Matplotlib nếu bạn chỉ định chế độ Matplotlib. Để kích hoạt chế độ này, bạn có thể sử dụng lệnh ma thuật # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()7 sau khi bắt đầu # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()8 In [1]: %matplotlib Using matplotlib backend: TkAgg In [2]: import matplotlib.pyplot as plt Tại thời điểm này, bất kỳ lệnh vẽ đồ thị plt.style.use('classic')7 nào cũng sẽ khiến cửa sổ hình mở ra và có thể chạy thêm các lệnh để cập nhật đồ thị. Một số thay đổi (chẳng hạn như sửa đổi thuộc tính của các đường đã được vẽ) sẽ không được vẽ tự động. để buộc cập nhật, hãy sử dụng 0. Không cần sử dụng # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()2 ở chế độ Matplotlib Vẽ sơ đồ từ sổ ghi chép IPythonSổ tay IPython là một công cụ phân tích dữ liệu tương tác dựa trên trình duyệt có thể kết hợp tường thuật, mã, đồ họa, các phần tử HTML, v.v. vào một tài liệu thực thi duy nhất (xem IPython. Ngoài Python bình thường) Vẽ sơ đồ tương tác trong sổ ghi chép IPython có thể được thực hiện bằng lệnh # ------- file: myplot.py ------ import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()7 và hoạt động theo cách tương tự với trình bao IPython. Trong sổ ghi chép IPython, bạn cũng có tùy chọn nhúng đồ họa trực tiếp vào sổ ghi chép, với hai tùy chọn khả thi
Đối với cuốn sách này, chúng tôi thường sẽ chọn 4Trong 3] %matplotlib inline Sau khi chạy lệnh này (chỉ cần thực hiện lệnh này một lần cho mỗi kernel/phiên), bất kỳ ô nào trong sổ ghi chép tạo biểu đồ sẽ nhúng hình ảnh PNG của đồ họa kết quả Việc sử dụng Matplot trong Python là gì?Matplotlib là thư viện biểu đồ đồ họa và trực quan hóa dữ liệu đa nền tảng dành cho Python và phần mở rộng số của nó là NumPy. Như vậy, nó cung cấp một giải pháp thay thế mã nguồn mở khả thi cho MATLAB. Các nhà phát triển cũng có thể sử dụng API của matplotlib (Giao diện lập trình ứng dụng) để nhúng các ô trong các ứng dụng GUI.
Làm cách nào để sử dụng matplotlib Python 3?Nếu không đúng như vậy, bạn có thể thiết lập bằng cách làm theo hướng dẫn cài đặt và thiết lập thích hợp cho hệ điều hành của mình. . Bước 1 - Nhập matplotlib. . Bước 2 - Tạo điểm dữ liệu để vẽ. . Bước 3 - Vẽ dữ liệu. . Bước 4 — Thêm tiêu đề và nhãn. . Bước 5 - Tùy chỉnh một cốt truyện. . Bước 6 - Lưu một cốt truyện Tại sao nên sử dụng matplotlib pyplot trong Python?Pyplot cung cấp matplotlib với hai tính năng chính. Giao diện kiểu MATLAB, cho phép những người quen thuộc với MATLAB sử dụng Python dễ dàng hơn . Tính trạng thái , có nghĩa là pyplot lưu trữ trạng thái của một đối tượng khi bạn vẽ nó lần đầu tiên. Điều này cần thiết để sử dụng trong cùng trạng thái vòng lặp hoặc phiên cho đến khi plt.
Tại sao Seaborn tốt hơn matplotlib?Việc vẽ biểu đồ thanh trong Seaborn dễ dàng hơn nhiều so với việc sử dụng mô-đun Matplotlib . Phương thức barplot() được sử dụng để vẽ biểu đồ thanh. đầu ra. Như bạn có thể thấy, chỉ một dòng trong mô-đun Seaborn vẽ biểu đồ thanh có nhãn. |