Python có khả năng tạo đồ thị bằng cách sử dụng thư viện matplotlib. Thư viện này có nhiều gói và hàm tạo ra nhiều loại đồ thị và biểu đồ khác nhau. Nó cũng rất dễ sử dụng. Kết hợp với numpy và các hàm tích hợp sẵn của Python để đạt được mục tiêu. Trong bài viết này, chúng ta sẽ xem một số loại đồ thị khác nhau mà nó có thể tạo ra.
Đồ thị đơn giản
Ở đây chúng ta lấy một hàm toán học để tạo tọa độ x và y của đồ thị. Sau đó sử dụng matplotlib để vẽ đồ thị cho hàm đó. Chúng ta có thể áp dụng nhãn và hiển thị tiêu đề của đồ thị như ví dụ dưới đây. Chúng ta vẽ đồ thị cho hàm lượng giác – tan.
Ví dụ
from matplotlib import pyplot as plt
import numpy as np
import math # cần cho định nghĩa pi
x = np.arange(0, math.pi*2, 0.05)
y = np.tan(x)
plt.plot(x, y)
plt.xlabel("góc")
plt.ylabel("Giá trị Tan")
plt.title('Sóng Tan')
plt.show()
Kết quả
Chạy mã trên cho kết quả sau:

Nhiều đồ thị (Multiplots)
Chúng ta có thể có hai hoặc nhiều đồ thị trên một canvas duy nhất bằng cách tạo nhiều trục (axes) và sử dụng chúng trong chương trình.
Ví dụ
import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig = plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # trục chính
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # trục con
axes3 = fig.add_axes([0.2, 0.3, 0.2, 0.3]) # trục con
axes1.plot(x, np.sin(x), 'b')
axes2.plot(x, np.cos(x), 'r')
axes3.plot(x, np.tan(x), 'g')
axes1.set_title('sine')
axes2.set_title("cosine")
axes3.set_title("tangent")
plt.show()
Kết quả
Chạy mã trên cho kết quả sau:

Lưới đồ thị con (Grid of Subplots)
Chúng ta cũng có thể tạo một lưới chứa nhiều đồ thị khác nhau, mỗi đồ thị là một subplot. Để làm điều này, chúng ta sử dụng hàm subplot2grid. Ở đây chúng ta phải chọn trục cẩn thận để tất cả các subplot vừa khít vào lưới. Có thể cần thử và sai một chút.
Ví dụ
import matplotlib.pyplot as plt
a1 = plt.subplot2grid((3,3), (0,0), colspan=2)
a2 = plt.subplot2grid((3,3), (0,2), rowspan=3)
a3 = plt.subplot2grid((3,3), (1,0), rowspan=2, colspan=2)
import numpy as np
x = np.arange(1, 10)
a2.plot(x, x*x, 'r')
a2.set_title('square')
a1.plot(x, np.exp(x), 'b')
a1.set_title('exp')
a3.plot(x, np.log(x), 'g')
a3.set_title('log')
plt.tight_layout()
plt.show()
Kết quả
Chạy mã trên cho kết quả sau:

Đồ thị đường đồng mức (Contour Plot)
Đồ thị đường đồng mức (đôi khi gọi là Level Plots) là cách hiển thị một bề mặt ba chiều trên một mặt phẳng hai chiều. Nó vẽ hai biến dự báo X, Y trên trục y và biến phản hồi Z dưới dạng đường đồng mức. Matplotlib chứa các hàm contour() và contourf() để vẽ đường đồng mức và đường đồng mức được tô màu tương ứng.
Ví dụ
import numpy as np
import matplotlib.pyplot as plt
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
fig, ax = plt.subplots(1, 1)
cp = ax.contourf(X, Y, Z)
fig.colorbar(cp) # Thêm thanh màu vào đồ thị
ax.set_title('Filled Contours Plot')
# ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()
Kết quả
Chạy mã trên cho kết quả sau:
