Matplotlib có lẽ là gói Python được sử dụng nhiều nhất cho đồ họa 2D. Nó cung cấp cả một cách nhanh chóng để trực quan hóa dữ liệu từ Python và các số liệu chất lượng xuất bản ở nhiều định dạng. Chúng ta sẽ khám phá matplotlib ở chế độ tương tác bao gồm hầu hết các trường hợp phổ biến
1. 5. 1. 1. Các chế độ IPython, Jupyter và matplotlib¶
Mẹo
Sổ ghi chép Jupyter và Python tương tác nâng cao IPython, được điều chỉnh cho quy trình tính toán khoa học bằng Python, kết hợp với Matplotlib
Đối với các phiên matplotlib tương tác, hãy bật chế độ matplotlib
Bảng điều khiển IPython.Khi sử dụng bảng điều khiển IPython, hãy sử dụng
In [1]: %matplotlibmáy tính xách tay jupyter.
Trong cuốn sổ, hãy chèn vào đầu cuốn sổ phép thuật sau
%matplotlib inline
1. 5. 1. 2. pyplot¶
Mẹo
pyplot cung cấp giao diện thủ tục cho thư viện vẽ đồ thị hướng đối tượng matplotlib. Nó được mô phỏng chặt chẽ sau Matlab™. Do đó, phần lớn các lệnh vẽ đồ thị trong pyplot đều có các lệnh tương tự Matlab™ với các đối số tương tự. Các lệnh quan trọng được giải thích bằng các ví dụ tương tác
from matplotlib import pyplot as plt
1. 5. 2. Cốt truyện đơn giản¶
Mẹo
Trong phần này, chúng ta muốn vẽ các hàm cosin và sin trên cùng một đồ thị. Bắt đầu từ cài đặt mặc định, chúng tôi sẽ từng bước làm phong phú thêm hình để làm cho hình đẹp hơn
Bước đầu tiên là lấy dữ liệu cho các hàm sin và cosin
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]1 hiện là một mảng có nhiều mảng với 256 giá trị nằm trong khoảng từ
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]2 là cosin [256 giá trị] và
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]3 là sin [256 giá trị].
Để chạy ví dụ, bạn có thể nhập chúng vào phiên tương tác IPython
$ ipython --matplotlib
Điều này đưa chúng ta đến dấu nhắc IPython
________số 8
Mẹo
Bạn cũng có thể tải xuống từng ví dụ và chạy nó bằng python thông thường, nhưng bạn sẽ mất thao tác dữ liệu tương tác
$ python plot_exercise_1.py
Bạn có thể lấy nguồn cho từng bước bằng cách nhấp vào hình tương ứng
1. 5. 2. 1. Vẽ sơ đồ với cài đặt mặc định¶
Gợi ý
Tài liệu
- cốt truyện hướng dẫn
- lệnh
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
4
Mẹo
Matplotlib đi kèm với một bộ cài đặt mặc định cho phép tùy chỉnh tất cả các loại thuộc tính. Bạn có thể kiểm soát giá trị mặc định của hầu hết mọi thuộc tính trong matplotlib. kích thước hình và dpi, độ rộng đường, màu sắc và kiểu dáng, trục, thuộc tính trục và lưới, thuộc tính văn bản và phông chữ, v.v.
%matplotlib inline1
1. 5. 2. 2. Khởi tạo giá trị mặc định¶
Gợi ý
Tài liệu
- Tùy chỉnh matplotlib
Trong tập lệnh bên dưới, chúng tôi đã khởi tạo [và nhận xét] tất cả các cài đặt hình ảnh hưởng đến sự xuất hiện của cốt truyện
Mẹo
Các cài đặt đã được đặt rõ ràng thành giá trị mặc định của chúng, nhưng giờ đây bạn có thể chơi tương tác với các giá trị để khám phá ảnh hưởng của chúng [xem Thuộc tính đường và Kiểu đường bên dưới]
%matplotlib inline2
1. 5. 2. 3. Thay đổi màu sắc và độ rộng của đường¶
Gợi ý
Tài liệu
- Kiểm soát thuộc tính dòng
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
5 API
Mẹo
Bước đầu tiên, chúng tôi muốn có cosin màu xanh lam và sin màu đỏ và một đường kẻ dày hơn một chút cho cả hai. Chúng tôi cũng sẽ thay đổi một chút kích thước hình để làm cho nó nằm ngang hơn
%matplotlib inline4
1. 5. 2. 4. Đặt giới hạn¶
Gợi ý
Tài liệu
- lệnh
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
6 - lệnh
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
7
Mẹo
Giới hạn hiện tại của hình hơi chật và chúng tôi muốn tạo một số khoảng trống để có thể nhìn rõ tất cả các điểm dữ liệu
%matplotlib inline0
1. 5. 2. 5. Cài đặt dấu tích¶
Gợi ý
Tài liệu
- lệnh
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
8 - lệnh
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
9 - Đánh dấu thùng chứa
- Đánh dấu vào định vị và định dạng
Mẹo
Các dấu tích hiện tại không lý tưởng vì chúng không hiển thị các giá trị thú vị [
%matplotlib inline1
1. 5. 2. 6. Đặt nhãn đánh dấu¶
Gợi ý
Tài liệu
- Làm việc với văn bản
- lệnh
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
8 - lệnh
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]
9 $ ipython --matplotlib
2$ ipython --matplotlib
3
Mẹo
Các dấu tick hiện đã được đặt đúng vị trí nhưng nhãn của chúng không rõ ràng lắm. Chúng ta có thể đoán rằng 3. 142 là
%matplotlib inline2
1. 5. 2. 7. Di chuyển gai¶
Gợi ý
Tài liệu
$ ipython --matplotlib
4 API- thùng chứa trục
- hướng dẫn chuyển đổi
Mẹo
Các gai là các đường nối các dấu tick của trục và ghi chú các ranh giới của vùng dữ liệu. Chúng có thể được đặt ở các vị trí tùy ý và cho đến bây giờ, chúng nằm trên đường viền của trục. Chúng tôi sẽ thay đổi điều đó vì chúng tôi muốn có chúng ở giữa. Vì có bốn trong số chúng [trên/dưới/trái/phải], chúng tôi sẽ loại bỏ phần trên cùng và bên phải bằng cách đặt màu của chúng thành không và chúng tôi sẽ di chuyển phần dưới cùng và bên trái để tọa độ 0 trong tọa độ không gian dữ liệu
%matplotlib inline3
1. 5. 2. 8. Thêm một huyền thoại¶
Gợi ý
Tài liệu
- hướng dẫn truyền thuyết
- lệnh
$ ipython --matplotlib
5 $ ipython --matplotlib
6 API
Mẹo
Hãy thêm một huyền thoại ở góc trên bên trái. Điều này chỉ yêu cầu thêm nhãn đối số từ khóa [sẽ được sử dụng trong hộp chú thích] vào các lệnh cốt truyện
%matplotlib inline4
1. 5. 2. 9. Chú thích một số điểm¶
Gợi ý
Tài liệu
- trục chú thích
- lệnh
$ ipython --matplotlib
7
Mẹo
Hãy chú thích một số điểm thú vị bằng cách sử dụng lệnh chú thích. Chúng tôi đã chọn giá trị
%matplotlib inline5
1. 5. 2. 10. Ma quỷ ở trong các chi tiết¶
Gợi ý
Tài liệu
$ ipython --matplotlib
8 API- phương pháp
$ ipython --matplotlib
9
Mẹo
Các nhãn đánh dấu hiện hầu như không nhìn thấy được vì các đường màu xanh và đỏ. Chúng tôi có thể làm cho chúng lớn hơn và chúng tôi cũng có thể điều chỉnh các thuộc tính của chúng sao cho chúng sẽ được hiển thị trên nền trắng bán trong suốt. Điều này sẽ cho phép chúng tôi xem cả dữ liệu và nhãn
%matplotlib inline6
1. 5. 3. Hình, Ô phụ, Trục và Dấu tích¶
Một "hình" trong matplotlib có nghĩa là toàn bộ cửa sổ trong giao diện người dùng. Trong hình này có thể có “ô con”
Mẹo
Cho đến nay, chúng tôi đã sử dụng việc tạo hình và trục ẩn. Điều này rất hữu ích cho các đồ thị nhanh. Chúng ta có thể có nhiều quyền kiểm soát hơn đối với màn hình bằng cách sử dụng hình, biểu đồ con và trục một cách rõ ràng. Trong khi ô phụ định vị các ô trong một lưới thông thường, các trục cho phép sắp xếp tự do trong hình. Cả hai đều có thể hữu ích tùy thuộc vào ý định của bạn. Chúng tôi đã làm việc với các số liệu và ô con mà không gọi chúng một cách rõ ràng. Khi chúng ta gọi plot, matplotlib gọi
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.0 để lấy các trục hiện tại và gca lần lượt gọi
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.1 để lấy hình hiện tại. Nếu không có cái nào, nó gọi
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.2 để tạo một cái, nói đúng ra, để tạo một cái
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.3. Hãy xem chi tiết
1. 5. 3. 1. Số liệu¶
Mẹo
Hình là các cửa sổ trong GUI có tiêu đề là “Hình #”. Các hình được đánh số bắt đầu từ 1 trái ngược với cách Python bình thường bắt đầu từ 0. Đây rõ ràng là kiểu MATLAB. Có một số tham số xác định hình trông như thế nào
Đối sốMặc địnhMô tảIPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.4
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.5số lượng hình
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.6
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.7kích thước hình tính bằng inch [chiều rộng, chiều cao]
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.8
IPython 0.13 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. %magic -> Information about IPython's 'magic' % functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more.9độ phân giải tính bằng số chấm trên mỗi inch
$ python plot_exercise_1.py0
$ python plot_exercise_1.py1màu của nền bản vẽ
$ python plot_exercise_1.py2
$ python plot_exercise_1.py3màu của cạnh xung quanh nền bản vẽ
$ python plot_exercise_1.py4
$ python plot_exercise_1.py5có khung hình vẽ hay không
Mẹo
Các giá trị mặc định có thể được chỉ định trong tệp tài nguyên và sẽ được sử dụng hầu hết thời gian. Chỉ có số của hình là thường xuyên thay đổi
Cũng như các đối tượng khác, bạn có thể đặt các thuộc tính của figure cũng như setp hoặc bằng các phương thức set_something
Khi bạn làm việc với GUI, bạn có thể đóng một hình bằng cách nhấp vào dấu x ở góc trên bên phải. Nhưng bạn có thể đóng một hình theo chương trình bằng cách gọi close. Tùy thuộc vào đối số, nó đóng [1] hình hiện tại [không có đối số], [2] một hình cụ thể [số hình hoặc ví dụ hình làm đối số] hoặc [3] tất cả các hình [_______96 làm đối số]
%matplotlib inline7
1. 5. 3. 2. Ô phụ¶
Mẹo
Với subplot, bạn có thể sắp xếp các ô trong một lưới thông thường. Bạn cần chỉ định số hàng và số cột và số lượng ô. Lưu ý rằng lệnh gridspec là một sự thay thế mạnh mẽ hơn
1. 5. 3. 3. Trục¶
Các trục rất giống với các ô con nhưng cho phép đặt các ô tại bất kỳ vị trí nào trong hình. Vì vậy, nếu chúng ta muốn đặt một ô nhỏ hơn bên trong một ô lớn hơn, chúng ta sẽ làm như vậy bằng các trục
1. 5. 3. 4. Tiếng ve¶
Các dấu tích được định dạng tốt là một phần quan trọng của các số liệu sẵn sàng xuất bản. Matplotlib cung cấp một hệ thống hoàn toàn có thể định cấu hình cho bọ ve. Có bộ định vị đánh dấu để xác định vị trí đánh dấu sẽ xuất hiện và đánh dấu định dạng để cung cấp cho đánh dấu hình thức bạn muốn. Các tick lớn và nhỏ có thể được định vị và định dạng độc lập với nhau. Mỗi tích tắc nhỏ mặc định không được hiển thị, tôi. e. chỉ có một danh sách trống cho họ vì nó là
$ python plot_exercise_1.py7 [xem bên dưới]
Công cụ định vị đánh dấu¶
Bộ định vị bọ ve kiểm soát vị trí của bọ ve. Chúng được thiết lập như sau
%matplotlib inline8
Có một số bộ định vị cho các loại yêu cầu khác nhau
Tất cả các bộ định vị này bắt nguồn từ lớp cơ sở
$ python plot_exercise_1.py8. Bạn có thể tạo bộ định vị của riêng mình bắt nguồn từ nó. Xử lý ngày dưới dạng dấu tích có thể đặc biệt phức tạp. Do đó, matplotlib cung cấp các bộ định vị đặc biệt trong matplotlib. ngày
1. 5. 4. Các loại lô đất khác. ví dụ và bài tập¶
1. 5. 4. 1. Ô thông thường¶
Bắt đầu từ đoạn mã bên dưới, hãy cố gắng tái tạo đồ họa với các khu vực được lấp đầy
Gợi ý
Bạn cần sử dụng lệnh
$ python plot_exercise_1.py9
%matplotlib inline9
Bấm vào hình để giải quyết
1. 5. 4. 2. Điểm phân tán¶
Bắt đầu từ đoạn mã bên dưới, hãy cố gắng tái tạo đồ họa, quan tâm đến kích thước, màu sắc và độ trong suốt của điểm đánh dấu
Gợi ý
Màu sắc được cho bởi góc của [X,Y]
from matplotlib import pyplot as plt0
Bấm vào hình để tìm giải pháp
1. 5. 4. 3. Lô đất¶
Bắt đầu từ mã bên dưới, hãy thử tái tạo đồ họa bằng cách thêm nhãn cho các thanh màu đỏ
Gợi ý
Bạn cần quan tâm đến việc căn chỉnh văn bản
from matplotlib import pyplot as plt1
Bấm vào hình để tìm giải pháp
1. 5. 4. 4. Đường viền¶
Bắt đầu từ đoạn mã bên dưới, hãy cố gắng tái tạo đồ họa bằng bản đồ màu [xem Bản đồ màu bên dưới]
Gợi ý
Bạn cần sử dụng lệnh
%matplotlib inline10
from matplotlib import pyplot as plt2
Bấm vào hình để tìm giải pháp
1. 5. 4. 5. Hiển thị¶
Bắt đầu từ mã bên dưới, hãy cố gắng tái tạo đồ họa bằng bản đồ màu, nội suy hình ảnh và nguồn gốc
Gợi ý
Bạn cần quan tâm đến
%matplotlib inline11 của hình ảnh trong lệnh imshow và sử dụng một
%matplotlib inline12
from matplotlib import pyplot as plt3
Bấm vào hình để biết giải pháp
1. 5. 4. 6. Biểu đồ hình tròn¶
Bắt đầu từ mã bên dưới, hãy cố gắng tái tạo đồ họa với màu sắc và kích thước lát cắt
Gợi ý
Bạn cần sửa đổi Z
from matplotlib import pyplot as plt4
Bấm vào hình để biết giải pháp
1. 5. 4. 7. Âm mưu run rẩy¶
Bắt đầu từ đoạn mã bên dưới, hãy cố gắng tái tạo đồ họa có chú ý đến màu sắc và hướng
Gợi ý
Bạn cần vẽ mũi tên hai lần
from matplotlib import pyplot as plt5
Bấm vào hình để tìm giải pháp
1. 5. 4. 8. Lưới¶
Bắt đầu từ đoạn mã bên dưới, hãy cố gắng tái tạo đồ họa theo các kiểu đường kẻ
from matplotlib import pyplot as plt6
Bấm vào hình để tìm giải pháp
1. 5. 4. 9. Nhiều lô đất¶
Bắt đầu từ đoạn mã dưới đây, hãy thử tái tạo đồ họa
Gợi ý
Bạn có thể sử dụng một số ô con với phân vùng khác nhau
from matplotlib import pyplot as plt7
Bấm vào hình để tìm giải pháp
1. 5. 4. 10. Trục cực¶
Gợi ý
Bạn chỉ cần sửa đổi dòng
%matplotlib inline13
Bắt đầu từ đoạn mã dưới đây, hãy thử tái tạo đồ họa
from matplotlib import pyplot as plt8
Bấm vào hình để tìm giải pháp
1. 5. 4. 11. Lô 3D¶
Bắt đầu từ đoạn mã dưới đây, hãy thử tái tạo đồ họa
Gợi ý
Bạn cần sử dụng
%matplotlib inline14
from matplotlib import pyplot as plt9
Bấm vào hình để tìm giải pháp
Xem thêm
Vẽ đồ thị 3D với Mayavi
1. 5. 4. 12. Chữ¶
Cố gắng làm điều tương tự từ đầu
Gợi ý
Hãy nhìn vào logo matplotlib
Bấm vào hình để tìm giải pháp
đọc nhanh
Nếu bạn muốn lướt nhanh qua các bài giảng Scipy đầu tiên để tìm hiểu về hệ sinh thái, bạn có thể trực tiếp chuyển sang chương tiếp theo. Scipy. máy tính khoa học cấp cao .
Phần còn lại của chương này là không cần thiết để làm theo phần còn lại của phần giới thiệu. Nhưng hãy nhớ quay lại và hoàn thành chương này sau
1. 5. 5. Ngoài phần hướng dẫn này¶
Matplotlib được hưởng lợi từ tài liệu phong phú cũng như cộng đồng người dùng và nhà phát triển lớn. Dưới đây là một số liên kết quan tâm
1. 5. 5. 1. Hướng dẫn¶
- hướng dẫn pyplot
- Giới thiệu
- Kiểm soát thuộc tính dòng
- Làm việc với nhiều hình và trục
- Làm việc với văn bản
- hướng dẫn bằng hình ảnh
- Lệnh khởi động
- Nhập dữ liệu hình ảnh vào mảng Numpy
- Vẽ các mảng có nhiều mảng như hình ảnh
- hướng dẫn văn bản
- giới thiệu văn bản
- Lệnh văn bản cơ bản
- Thuộc tính và bố cục văn bản
- Viết biểu thức toán học
- Kết xuất văn bản Với LaTeX
- Chú thích văn bản
- hướng dẫn nghệ sĩ
- Giới thiệu
- Tùy chỉnh các đối tượng của bạn
- thùng chứa đối tượng
- thùng chứa hình
- thùng chứa trục
- container trục
- đánh dấu container
- hướng dẫn đường dẫn
- Giới thiệu
- Ví dụ Bézier
- đường dẫn hợp chất
- hướng dẫn chuyển đổi
- Giới thiệu
- tọa độ dữ liệu
- tọa độ trục
- biến đổi hỗn hợp
- Sử dụng các phép biến đổi offset để tạo hiệu ứng đổ bóng
- Đường ống chuyển đổi
1. 5. 5. 2. Tài liệu Matplotlib¶
- hướng dẫn sử dụng
- Câu hỏi thường gặp
- Cài đặt
- Cách sử dụng
- Làm thế nào để
- Xử lý sự cố
- Biến môi trường
- Ảnh chụp màn hình
1. 5. 5. 3. Tài liệu mã¶
Mã được ghi lại đầy đủ và bạn có thể nhanh chóng truy cập một lệnh cụ thể từ bên trong phiên python
import numpy as np X = np.linspace[-np.pi, np.pi, 256] C, S = np.cos[X], np.sin[X]0
1. 5. 5. 4. Phòng trưng bày¶
Thư viện matplotlib cũng cực kỳ hữu ích khi bạn tìm kiếm cách hiển thị một đồ họa nhất định. Mỗi ví dụ đi kèm với nguồn của nó
1. 5. 5. 5. Danh sách mail¶
Cuối cùng, có một danh sách gửi thư của người dùng nơi bạn có thể yêu cầu trợ giúp và danh sách gửi thư của nhà phát triển mang tính kỹ thuật hơn
1. 5. 6. Tham khảo nhanh¶
Đây là một tập hợp các bảng hiển thị các thuộc tính và kiểu chính
1. 5. 6. 1. Thuộc tính đường¶
PropertyDescriptionAppearancealpha [hoặc a]alpha độ trong suốt trên thang 0-11. 5. 6. 2. Kiểu đường kẻ¶
1. 5. 6. 3. Điểm đánh dấu¶
1. 5. 6. 4. Bản đồ màu¶
Tất cả các bản đồ màu có thể được đảo ngược bằng cách nối thêm
%matplotlib inline15. Chẳng hạn,
%matplotlib inline16 là đảo ngược của
%matplotlib inline17
Nếu bạn muốn biết thêm về bản đồ màu, hãy xem tài liệu về Bản đồ màu trong matplotlib
1. 5. 7. Ví dụ mã đầy đủ¶
1. 5. 7. 1. Mẫu mã cho Matplotlib¶
Các ví dụ ở đây chỉ là những ví dụ liên quan đến các điểm nêu ra trong chương này. Tài liệu matplotlib đi kèm với một bộ sưu tập đầy đủ hơn nhiều