Làm cách nào để vẽ một mảng d trong Python?

Chúng ta thường muốn trực quan hóa dữ liệu hoặc kết quả. Có rất nhiều cách để tạo biểu đồ, sơ đồ hoặc hình ảnh, tùy thuộc vào loại dữ liệu và ngữ cảnh. Chúng tôi bắt đầu ở đây bằng cách xem xét đồ thị cơ bản của hai biến, i. e. , đồ thị "x-y" cổ điển

Chúng ta sẽ gặp mô-đun Matplotlib của Python, mô-đun này sẽ rất cần thiết cho công việc này. Ngoài ra, chúng tôi cũng sẽ sử dụng mô-đun NumPy khá nhiều, vì chúng tôi sẽ làm việc với các mảng

import matplotlib.pyplot as plt     # for plotting
import numpy as np                  # for working with arrays

13. 1. Cốt truyện cơ bản¶

Giả sử chúng ta quan tâm đến việc vẽ biểu đồ mối quan hệ giữa hai biến chẳng hạn như

trong một khoảng thời gian nhất định
Về mặt toán học, có một mối quan hệ liên tục giữa . Làm cách nào để chúng tôi sử dụng máy tính để hiển thị nội dung này?

Chà, Python sẽ không thể tạo biểu đồ

từ công thức toán học trừu tượng/tổng ​​quát ở trên. Chúng ta sẽ cần tạo các giá trị cụ thể để ước tính đường cong và sau đó vẽ các giá trị này. Về cơ bản, chúng ta phải quay lại những điều cơ bản, về những ngày đầu đi học khi chúng ta học cách vẽ đồ thị bằng tay. Để tính gần đúng một đường cong liên tục, chúng ta. tạo một cột gồm các giá trị và sau đó là một cột tương ứng gồm các giá trị được tính toán; . Dưới đây là loại hình ảnh sẽ dẫn đến, và trên thực tế, đây chính xác là cách chúng tôi sẽ khai thác những đổi mới công nghệ tuyệt vời của máy tính.
pair; and then connected the dots in order using a straight line segment. Below is the kind of image that would result, and in fact this is exactly how we will harness the amazing technological innovations of computers:

Hồi tưởng lại những ngày đầu vẽ sơ đồ đơn giản. xây dựng hai cột số, với mỗi hàng thứ i cung cấp một cặp

được đặt trên biểu đồ bên phải. Các cặp có thể được kết nối bằng các đường thẳng để tạo sự liên tục [đôi khi là khối ô vuông].

Trong phần trước, chúng ta đã nghiên cứu về mảng 1D . Bạn có thấy cách nào chúng ta có thể áp dụng kiến ​​thức ở đây không? . Chúng tôi có thể nhận thấy rằng x có các giá trị cách đều nhau, vì vậy chúng tôi có thể sử dụng hàm numpy được xây dựng để tạo một mảng như vậy một cách dễ dàng; .

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]

Nhìn vào cốt truyện của chúng ta ở trên, chúng ta nên đánh giá cao rằng các mảng

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
0 và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
1 phải luôn có cùng độ dài. mỗi điểm là một cặp tọa độ của một phần tử tương ứng trong hai mảng---e. g. , hoặc, theo lập trình,
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
2.

Q. Làm cách nào bạn có thể viết một biểu thức Python để kiểm tra xem hai mảng có cùng độ dài không?

+ hiện/ẩn mã

1
2
3
4
5

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]

Sau đó, chúng ta có thể sử dụng hàm

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
3 để tạo biểu đồ của các cặp phần tử. Hãy xem trợ giúp của nó để sử dụng thông qua
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
4. Ở đây, chúng tôi chỉ hiển thị phần trên cùng của chuỗi tài liệu [khá dài, với nhiều khả năng kiểm soát hành vi vẽ biểu đồ] và sau đó là phần trên cùng của mô tả các tham số [phần này nằm sâu hơn trong phần trợ giúp]

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
0

Trong Dòng 1, chúng tôi thấy một vài đối số từ khóa được cung cấp, nhưng trên thực tế có quá nhiều tham số và kết hợp đầu vào có thể có để liệt kê riêng lẻ ở đó, vì vậy, trợ giúp chỉ đặt

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
5 và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
6 để biểu thị thêm mỗi loại . Nhìn vào chữ ký cuộc gọi ví dụ trong Dòng 7-8, chúng tôi thấy điều đó có thể là những gì chúng tôi muốn chúng tôi muốn. vẽ một hoặc hai mảng 1D [vì trong dòng 25-27, chúng tôi thấy rằng đó là những gì mà
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
0 và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
1 thường biểu diễn]. Trong các dòng 16-17, chúng ta thấy các ví dụ cơ bản về vẽ đồ thị "y so với x", hoặc trong các dòng 18-19, chúng ta thấy chúng ta chỉ có thể vẽ "y" một mình, với các giá trị abscissa tự động được tạo thành các giá trị int từ . These look usable with the arrays we have, so let's try the first one from Line 16:

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
5

Tại sao có hai lệnh cần thiết ở đây? . đầu tiên, thực hiện cốt truyện; . Và cốt truyện đó trông như thế này

.. which is basically what we had above [just without the

dòng]. Ba ô ví dụ khác trong Dòng 17-19 trông như thế nào? . Ví dụ: chúng hiển thị các điểm riêng biệt bằng ký hiệu "điểm đánh dấu" và thay đổi màu sắc.
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
9 là một lối tắt, trong đó "b" là màu xanh lam và "o" là dấu tròn; . Bằng cách chỉ đặt một mảng trong các đối số vị trí, trục x trở thành các giá trị có khoảng cách số nguyên từ .

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
1

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
3

Lưu ý rằng các trường hợp chỉ có

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
1 được vẽ là không phù hợp ở đây; . Nhưng trong những trường hợp khác, nó có thể là một cú pháp hữu ích

Có rất nhiều chức năng chồng chéo giữa các chức năng và đối số Matplotlib để kiểm soát sự xuất hiện của các ô. Chúng tôi sẽ cố gắng giới thiệu một mẫu tùy chọn bắt đầu, bên dưới. Trong mọi trường hợp, chúng tôi khuyên bạn nên duyệt các chuỗi tài liệu trợ giúp của các chức năng được đề cập, cũng như khám phá các chức năng khác trong mô-đun

13. 2. Kiểu vẽ và thuộc tính¶

Có thể vẽ nhiều hơn một đường trên biểu đồ. Hãy thêm một mảng tọa độ khác [và giữ nguyên các giá trị x]

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
3

Theo mặc định, Python sẽ thêm các dòng mới với các màu riêng biệt, nhưng hãy xem xét việc chỉ định màu, cũng như kiểu đường và kiểu đánh dấu. Trong hầu hết các trường hợp, chúng tôi sẽ chỉ định những điều này bằng các đối số từ khóa cho chức năng vẽ đồ thị

Một lần nữa, chuỗi tài liệu

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
4 dài, nhưng trong phần "Thuộc tính. " có một danh sách các kwarg, trong đó có một vài cái có liên quan

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
5

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
6

Trong một số trường hợp, có cả phiên bản dài và ngắn của cùng một từ khóa [e. g. ,

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
7 và
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
8]. Ở bên phải của dấu hai chấm, loại giá trị dự kiến ​​được liệt kê, trong hầu hết các trường hợp ở đây là dấu phẩy động [đối với kích thước] hoặc chuỗi [đối với màu hoặc kiểu]. Các giá trị kiểu đường ví dụ được cung cấp ở đó, nhưng trong nhiều trường hợp đáng quan tâm, danh sách quá dài nên chúng được hiển thị sâu hơn trong chuỗi tài liệu;

+ hiện/ẩn các điểm đánh dấu cốt truyện

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
0

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
1

+ hiện/ẩn kiểu đường kẻ ô

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
2

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
3

+ hiển thị/ẩn chữ viết tắt màu của ô

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
4

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
5

Các ví dụ vẽ sơ đồ cơ bản ở trên cho thấy cách kết hợp các chữ viết tắt màu của ký tự với các điểm đánh dấu hoặc kiểu đường kẻ. Và một bộ sưu tập các màu "được đặt tên" của Matplotlib được cung cấp ở cuối trang này

Làm thế nào để chúng tôi sử dụng các thông số này?

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
6

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
7

Một số nhận xét về các lệnh này

  • Bạn có thể kiểm tra mô tả của các từ khóa bằng chuỗi tài liệu của hàm hoặc các bảng ở trên

  • Chúng tôi có thể đã sử dụng một số chữ viết tắt ở trên cho màu sắc và đường kẻ, chẳng hạn như

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    9 thay cho
    x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
    y = np.array[[4, 1, 0, 1, 4]]
    
    00, nhưng khi chúng tôi chỉ định nhiều tùy chọn, việc sử dụng tên tùy chọn đầy đủ có thể dễ đọc hơn

  • Lưu ý rằng trong lệnh

    x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
    y = np.array[[4, 1, 0, 1, 4]]
    
    01 thứ hai, chúng tôi đã chỉ định rất nhiều tùy chọn đến nỗi chúng tôi quyết định đặt chúng trên các dòng riêng biệt. Điều này có thể thuận tiện cho sự rõ ràng, cho cả việc đọc và thay đổi các tùy chọn;

  • Gọi hàm

    x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
    y = np.array[[4, 1, 0, 1, 4]]
    
    03 ngay trước khi
    x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
    y = np.array[[4, 1, 0, 1, 4]]
    
    04 bật chế độ tương tác "bật", thao tác này sẽ không thêm chức năng trong môi trường máy tính xách tay Jupyter, nhưng nếu làm việc trong iPython, người ta có thể tiếp tục nhập lệnh mà không cần phải đóng biểu đồ

  • Các mảng được vẽ được hiển thị theo thứ tự được liệt kê, vì vậy mảng đầu tiên sẽ ở xa nhất trong nền và mảng cuối cùng ở phía trước

Dù sao đi nữa, những điều trên dẫn đến cốt truyện đầy màu sắc

Ghi chú

Trước đó, chúng tôi đã lưu ý rằng trình thông dịch Python đọc từng dòng riêng biệt và nếu bạn muốn trải dài một lệnh lên dòng tiếp theo, bạn sẽ sử dụng phần tiếp theo của ký tự dòng . Vậy thì, làm cách nào mà

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
3 ở trên có thể kéo dài Dòng 3-11 mà không cần sử dụng
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
05? . Vậy thì, làm cách nào mà
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
3 ở trên có thể kéo dài Dòng 3-11 mà không cần sử dụng
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
05?
. Vậy thì, làm cách nào mà
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
3 ở trên có thể kéo dài Dòng 3-11 mà không cần sử dụng
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
05?
. Vậy thì, làm cách nào mà
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
3 ở trên có thể kéo dài Dòng 3-11 mà không cần sử dụng
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
05?
. Vậy thì, làm cách nào mà
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
3 ở trên có thể kéo dài Dòng 3-11 mà không cần sử dụng
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
05?
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
05. How, then, can the above
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
3 span Lines 3-11 without using
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
05 at all?

Điều này xảy ra bởi vì có một dấu ngoặc đơn mở ngoặc đơn

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
08 ở Dòng 3, và trình thông dịch sẽ tiếp tục coi mọi thứ nó đọc được như một phần của biểu thức đơn lẻ đó cho đến khi nó chạm đến dấu ngoặc đơn kết thúc
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
09. Xem tại đây để biết thêm ví dụ về việc tiếp tục dòng tự động của Python.

13. 3. Tiêu đề, nhãn và chi tiết trục¶

Chúng tôi có thể thêm nhiều tính năng hơn vào cốt truyện để thực sự hữu ích cho việc trình bày thông tin. Ví dụ: ngay bây giờ chúng tôi không biết gì về các đơn vị dọc theo trục x và y và việc thêm tiêu đề sẽ hữu ích để biết nội dung đang được vẽ

Chúng tôi thậm chí có thể đặt chú thích vào cốt truyện để hiển thị nhãn cho từng ô. điều này được thực hiện bằng cách thêm một hàm

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
50 trước khi hiển thị cốt truyện. Chúng ta có thể để Matplotlib đoán một vị trí tốt cho chú giải hoặc tự chỉ định nó. Hãy xem xét những điều sau đây

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
8

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
9

Ghi chú

Python có thể giải thích "chế độ toán học" của LaTeX trong chuỗi. Vì vậy, nếu bạn đã quen với cách mạnh mẽ này để viết các biểu thức kỹ thuật, bạn có thể thêm gia vị cho các biểu đồ của mình. Chỉ cần lưu ý rằng ký tự thoát của LaTeX

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
05 cũng được nhận dạng như vậy trong Python và do đó, người ta phải bao gồm 2 trong số chúng trong hầu hết các trường hợp để nó được chuyển qua LaTex một cách chính xác

Ví dụ: chúng ta có thể sử dụng công thức

trong nhãn của ô đầu tiên ở trên. Trong Latex thuần túy, điều này sẽ được mã hóa thành
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
52; .
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
53. Bạn có thể xác minh điều này trong nhãn chuỗi ở trên.

Matplotlib ước tính phạm vi mặc định của cả trục x và trục y để hiển thị toàn bộ diện tích của các điểm được vẽ. Giới hạn của từng loại có thể được đặt riêng với các chức năng

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
54 và
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
55 tương ứng. [Ở đây và bên dưới, nếu có hàm
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
56, thông thường người ta có thể mong đợi tìm thấy hàm
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
57 có tham số và cú pháp tương tự và ngược lại. ] Lưu ý rằng việc đặt giới hạn theo cách này có thể cắt nhỏ các phần của cốt truyện

Ngoài ra, chúng ta có thể đặt đơn vị tương đối hoặc tỷ lệ đơn vị giữa hai trục. Ví dụ: nếu cả hai trục đều chia sẻ cùng một đơn vị, chúng tôi có thể muốn đảm bảo rằng khoảng cách giữa "0" và "1" trong mỗi trường hợp bao phủ cùng một lượng không gian biểu đồ; . Hàm

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
58 có thể lấy các đối số
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
59 và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
30 làm hai cách khác nhau để cố gắng thực thi mối quan hệ của các đơn vị trục. cái trước cố gắng điều chỉnh kích thước của ô và cái sau cố gắng thay đổi phạm vi [vì vậy nó có thể dẫn đến việc bỏ qua cài đặt
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
31 và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
32]

Các vị trí dọc theo các cạnh của ô có dấu gạch ngang và số đánh dấu trục được gọi là dấu tích chính. Matplotlib có một số công thức bên trong để đặt chúng theo mặc định. Nhưng bạn có thể chuyển một mảng giá trị cho các vị trí đánh dấu dọc theo một trong hai trục bằng

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
33 hoặc
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
34. Các dấu tích thậm chí có thể bị tắt bằng cách chuyển một danh sách trống, ví dụ:
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
35

Các trục được gắn nhãn bằng số, nhưng đôi khi việc thêm vào các trục x và y tiêu chuẩn sẽ cung cấp các dấu hiệu trực quan hữu ích. Mặc dù chúng ta có thể tạo nhiều mảng hơn để thực hiện điều này, nhưng vẫn có các hàm Matplotlib để vẽ các đường như vậy.

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
36 vẽ một đường ngang theo mặc định tại và trên toàn bộ ô; . Nếu chúng ta có thể muốn những thứ này ở trong nền, chúng ta sẽ vẽ những thứ này trước các đường cong chính. Là một điểm phong cách, tôi thường thích làm cho những màu này có màu xám nhạt [thay vì màu đen mặc định] và mỏng hơn một chút so với mặc định.

Khi chúng ta bắt đầu tạo một số ô, có thể hữu ích khi sử dụng hàm

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
38 để biểu thị sự bắt đầu của một ô mới; . Sau này, chúng ta cũng sẽ thấy rằng chúng ta cũng có thể kiểm soát tính năng hữu ích về cốt truyện [kích thước, kích thước, độ phân giải] bằng chức năng này

1
2
3
4
5
0

1
2
3
4
5
1

dẫn đến

13. 4. Lưới ô vuông¶

Ngoài việc hiển thị một số đường cong trong cùng một ô, chúng ta cũng có thể tạo một hình đơn lẻ với nhiều ô. Có nhiều cú pháp để làm điều này. Ở mức cơ bản nhất, chúng ta có thể hình dung hình được tạo thành từ một

ma trận các ô mà chúng ta có thể duyệt qua, từng hàng một từ ô phía trên bên trái [và mỗi ô được lập chỉ mục . Điều này được chỉ định với
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
39, được sử dụng để chỉ ra cả kích thước của lưới và biểu đồ cụ thể mà chúng tôi muốn chỉnh sửa. Từ chuỗi tài liệu của nó
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
50.
], adding relevant details to each one. This is specified with
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
39, which is used to indicate both the dimensions of the grid and which particular plot we want to edit. From its docstring
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
50:

x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
0

1
2
3
4
5
3

Trong phần "Tham số", đoạn đầu tiên bên dưới

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
5 đề cập đến cú pháp của Dòng 9. Đoạn thứ hai dưới đó đề cập đến Dòng 10. Cả hai đều chứa cùng một thông tin. về cơ bản, nếu mỗi số hàng, số cột và tổng số ô là một chữ số [], thì bạn có thể sử dụng biểu mẫu thứ hai "đơn giản hơn". Nếu không, bạn phải sử dụng cái đầu tiên. Các mô tả ở trên có thể sẽ rõ ràng hơn với một ví dụ.

Trước tiên hãy tạo một tập hợp các mảng 1D khác để vẽ đồ thị

1
2
3
4
5
4

Trường hợp này tương tự như cặp mảng

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
0 và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
1 ban đầu, nhưng với kích thước bước nhỏ hơn dọc theo trục x và do đó có giá trị gần đúng hơn với đường cong phân tích. Để xem điều này so sánh như thế nào, chúng tôi sẽ vẽ đồ thị này với các mảng 1D ban đầu trên một ô con, sau đó đặt
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
54 trên ô con thứ hai.

1
2
3
4
5
5

1
2
3
4
5
6

Vì số lượng ô là một chữ số, chúng ta có thể viết các lệnh subplot theo cú pháp viết tắt.

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
55 và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
56. Trong cả hai trường hợp, biểu đồ đầu ra sẽ giống nhau

13. 5. Lưu vào tệp¶

Matplotlib chứa một chức năng để lưu một hình vào một tệp, được gọi là

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
57. Bạn có thể sử dụng nó thay thế hoặc cùng với [e. g. , gọi nó sau],
x = np.linspace[-2, 2, 5]            # 5 values: -2. -1.  0.  1.  2.
y = np.array[[4, 1, 0, 1, 4]]
04

Đối số chính để cung cấp là một vị trí. tên tập tin đầu ra. Tên tệp này có thể bao gồm các thành phần đường dẫn để ghi tệp trực tiếp vào thư mục khác, nếu không thì nó được ghi vào thư mục làm việc hiện tại. Tên tệp thường bao gồm phần mở rộng tệp có liên quan, là một vài ký tự ngắn ở cuối tệp [theo sau ". "] để chỉ định định dạng của tệp

Đối với hình ảnh,

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
59,
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
60 và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
61 là một số phần mở rộng hoặc định dạng phổ biến nhất. Đây là tất cả các phần của một nhóm được gọi là hình ảnh rasterized, mà bạn có thể nghĩ về toàn bộ hình ảnh được cắt thành một lưới 2D thông thường để lưu trữ thông tin; . Đối với các tệp như vậy, việc chỉ định độ phân giải không gian của lưới là rất quan trọng. Cũng giống như màn hình máy tính hay điện thoại, hình ảnh có thể “đẹp” và chi tiết hơn với hình ảnh có độ phân giải cao hơn. Điều này được định lượng bằng số chấm trên mỗi inch [DPI], với DPI càng lớn thì độ phân giải càng cao. Python sử dụng một số DPI mặc định khi lưu hình ảnh, nhưng người ta cũng có thể chỉ định kwarg trong hàm, chẳng hạn như

1
2
3
4
5
7

Có DPI cao hơn có thể tạo ra hình ảnh đẹp hơn hoặc hình ảnh có thể được phóng to một cách hữu ích, nhưng cũng có kích thước tệp lớn hơn. Kích thước tệp lớn như thế nào [và tỷ lệ của nó với DPI] tùy thuộc vào định dạng hình ảnh; . chúng lưu trữ thông tin theo cách khác, thường nhằm mục đích nén hình ảnh thành kích thước nhỏ nhất có thể trên máy tính. Không có độ phân giải "tốt nhất" phổ biến -- sự lựa chọn thường phụ thuộc vào ngữ cảnh. Nhiều tạp chí khoa học yêu cầu các số liệu đã xuất bản phải có DPI ít nhất là 300, nhưng thấp hơn có thể tốt cho nhiều ứng dụng

Một loại hình ảnh khác được gọi là đồ họa véc-tơ, bao gồm

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
62,
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
63 [vâng, loại hình ảnh này thường được sử dụng cho các tài liệu văn bản] và
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
64. Chúng lưu các dòng và chữ cái của ô dưới dạng các đối tượng riêng biệt, giữ nguyên danh tính của chúng khi được lưu vào tệp. Điều này có nghĩa là khi phóng to, hình ảnh không bắt đầu bị nhiễu hạt khi đạt đến mức lưới. Đối với hình ảnh dòng và văn bản hoặc hình ảnh được tạo bằng nhiều hình dạng, đây có thể là định dạng tệp rất hữu ích. [Nếu bạn có một bức ảnh tiêu chuẩn, thì bản chất liên tục của hầu hết các yếu tố sẽ loại trừ đồ họa véc-tơ là một định dạng tốt. ] Chỉ định đầu ra tệp đồ họa vector tuân theo cú pháp tương tự như đối với hình ảnh rasterized, ở trên

1
2
3
4
5
8

vân vân

Định dạng tệp nào là tốt nhất cho hình ảnh của bạn? . Ngoài ra còn có các định dạng tệp khác. Lưu ý rằng một số có sự cân bằng-- các định dạng trên đều không mất dữ liệu, nghĩa là chúng không cố gắng hy sinh chất lượng hình ảnh cho kích thước tệp, nhưng các định dạng khác sẽ [chúng bị mất dữ liệu]. Ví dụ:

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
65 là một đồ họa rasterized khác có kích thước tệp khá nhỏ, nhưng nhìn chung chất lượng kém;

Cuối cùng, chúng tôi lưu ý nếu bạn muốn kiểm soát kích thước của hình ảnh đã lưu, điều đó được thực hiện bằng cách sử dụng

if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
66 kwarg trong hàm
if len[x] != len[y] :
    print["Hey!  The length of x and y differ!"]
    print["The lengths are", len[x], "and", len[y], ", respectively."]
else:
   print["All good.  Each array has length:", len[x]]
38. Cần phải cung cấp cả chiều rộng và chiều cao của hình cuối cùng, vì vậy cặp giá trị này phải được nhóm lại với nhau, e. g

Bạn có thể vẽ một mảng 2D bằng Python không?

Matplotlib và Numpy cung cấp các mô-đun và hàm để trực quan hóa mảng 2D trong python . Để trực quan hóa một mảng hoặc danh sách trong matplotlib, chúng ta phải tạo dữ liệu mà thư viện NumPy có thể thực hiện, sau đó vẽ dữ liệu bằng matplotlib.

Làm cách nào để hiển thị mảng trong matplotlib?

Chúng ta có thể hiển thị mảng dưới dạng hình ảnh bằng cách sử dụng plt. lệnh imshow từ matplotlib. Đây là đầu ra mặc định. >>> vui lòng.

Làm cách nào để vẽ dữ liệu bằng NumPy?

Để vẽ đồ thị bằng Python, chúng ta sẽ sử dụng thư viện Matplotlib . Matplotlib được sử dụng cùng với dữ liệu NumPy để vẽ bất kỳ loại biểu đồ nào. Từ matplotlib, chúng tôi sử dụng chức năng cụ thể i. e. pyplot[], được sử dụng để vẽ dữ liệu hai chiều.

Chủ Đề