Computer >> Máy Tính >  >> Lập trình >> Python

Vẽ đồ thị bằng Python

Python có khả năng tạo đồ thị bằng cách sử dụng thư viện matplotlib. Nó có nhiều gói và chức năng tạo ra nhiều loại đồ thị và đồ thị. Nó cũng rất đơn giản để sử dụng. Nó cùng với numpy và các chức năng tích hợp sẵn khác của python đạt được mục tiêu. Trong bài viết này, chúng ta sẽ thấy một số loại biểu đồ khác nhau mà nó có thể tạo ra.

Đồ thị đơn giản

Ở đây chúng ta sử dụng một hàm toán học để tạo ra các tọa độ x và Y của đồ thị. Sau đó, chúng tôi sử dụng matplotlib để vẽ đồ thị cho hàm đó. Tại đây chúng ta có thể dán nhãn và hiển thị tiêu đề của đồ thị như hình dưới đây. Chúng tôi đang vẽ đồ thị cho hàm số lượng giác - tan.

Ví dụ

from matplotlib import pyplot as plt
import numpy as np
import math #needed for definition of pi
x = np.arange(0, math.pi*2, 0.05)
y = np.tan(x)
plt.plot(x,y)
plt.xlabel("angle")
plt.ylabel("Tan value")
plt.title('Tan wave')
plt.show()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Vẽ đồ thị bằng Python

Nhiều ô

Chúng ta có thể có hai hoặc nhiều ô trên một khung vẽ bằng cách tạo nhiều trục 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]) # main axes
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes
axes3 = fig.add_axes([0.2, 0.3, 0.2, 0.3]) # inset axes
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()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Vẽ đồ thị bằng Python

Lưới các ô con

Chúng ta cũng có thể tạo một lưới chứa các biểu đồ khác nhau, mỗi biểu đồ là một ô con. Đối với điều này, chúng tôi sử dụng hàm subplot2grid. Ở đây chúng ta phải chọn các trục một cách cẩn thận để tất cả các ô phụ có thể vừa với lưới. Có thể cần một chút đánh 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()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau:

Vẽ đồ thị bằng Python

Ô đường viền

Đồ thị đường bao (đôi khi được gọi là Đồ thị mức) là một cách để thể hiện một bề mặt ba chiều trên một mặt phẳng hai chiều. Nó vẽ biểu đồ hai biến dự báo X Y trên trục y và một biến phản ứng Z dưới dạng đường viền.Matplotlib chứa các hàm contour () và contourf () lần lượt vẽ các đường đồng mức và các đường bao đầy.

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) # Add a colorbar to a plot
ax.set_title('Filled Contours Plot')

#ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau:

Vẽ đồ thị bằng Python