Một trong những gói Python phổ biến nhất để trực quan hóa dữ liệu là Matplotlib. Khả năng sửa đổi hầu hết mọi thành phần trong hệ thống phân cấp đối tượng của Matplotlib góp phần đáng kể vào sự hấp dẫn của nó
Trong bài viết này, chúng ta sẽ xem xét các cách khác nhau để đặt phạm vi trục của các ô của chúng ta. Đặt phạm vi trục trong các ô của chúng tôi giúp chúng tôi chia tỷ lệ các ô của mình hiệu quả hơn, vì chúng tôi có thể tăng/giảm tỷ lệ theo ý thích của mình
Đặt phạm vi trục trong Matplotlib
a. Làm thế nào nó hoạt động?
Để hiểu cách đặt phạm vi trục giúp chúng ta, hãy lấy một ví dụ
Đây là một đồ thị đơn giản của một đường cong cosin, và như bạn có thể thấy, tỷ lệ dao động từ
- 0 đến 100. Đối với trục X
- -1 đến 1. Đối với trục Y
Trong một số trường hợp, phạm vi tỷ lệ nhất định sẽ không phù hợp. Trong những trường hợp này, cần có một chức năng có thể hạn chế phạm vi theo tiêu chí của chúng tôi
Sau khi thay đổi phạm vi, cốt truyện sẽ giống như thế này
Như bạn có thể thấy, chúng tôi đã thay đổi phạm vi cho Trục X từ 0 thành 60. Tính năng này sẽ giúp chúng tôi mở rộng quy mô các ô của mình một cách hiệu quả
b] Cú pháp
Các hàm chúng tôi sử dụng để đặt phạm vi lần lượt là xlim[] và ylim[] cho trục X và Y
matplotlib.pyplot.xlim[a, b]
c] Thông số
a. Giới hạn dưới của trục. b. Giới hạn trên của trục
Làm cách nào để đặt Phạm vi trục trong Matplotlib?
Bây giờ chúng tôi đã học cách đặt phạm vi trục, chúng tôi sẽ cố gắng triển khai điều đó cho các trường hợp sử dụng khác nhau
a] Đặt phạm vi trục trong một biểu đồ
Để chứng minh ví dụ này, chúng tôi sẽ đặt một phạm vi tùy chỉnh cho một đường cong hình sin trong matplotlib
# import packages import matplotlib.pyplot as plt import numpy as np # return values between 0 and 10, with a space of 0.1 x = np.arange[0, 10, 0.1] # generate the value of the cos function for given x values y = np.sin[x] # plot graph of the sine function plt.plot[y, color='blue'] plt.xlim[0, 50] plt.ylim[0, 1] # display plot plt.show[]
Giải trình
Trong mã này, chúng tôi sử dụng hàm arange[] để trả về các giá trị từ 0 đến 10 và có khoảng cách liền kề là 0. 1 giữa họ. Sau khi tạo đường cong hình sin, chúng ta thay đổi phạm vi trục bằng cách sử dụng hàm xlim[] và ylim[]
đầu ra
- Sử dụng các hàm set_xlim[] và set_ylim[]
Một cách khác để đặt phạm vi trục là sử dụng các hàm set_xlim[] và set_ylim[]
Các chức năng này không sử dụng trực tiếp mô-đun pyplot như xlim[] và ylim[], chúng được sử dụng với các trục của các ô của chúng tôi
# import packages import matplotlib.pyplot as plt import numpy as np fig, ax = plt.subplots[] # return values between 0 and 10, with a space of 0.1 x = np.arange[0, 10, 0.1] # generate the value of the cos function for given x values y = np.sin[x] # plot graph of the sine function plt.plot[y, color='blue'] ax.set_xlim[10, 50] ax.set_ylim[0, 1] # display plot plt.show[]
đầu ra
Bằng cách sử dụng phương thức axis[], chúng ta có thể khởi tạo trục x và trục y cùng một lúc
Để khởi tạo các trục của chúng ta cùng một lúc, chúng ta cần chuyển các trục của mình dưới dạng một danh sách trong hàm axis[]. Trong ví dụ bên dưới, chúng tôi chuyển các trục [[0, 5] và [1, 15]] dưới dạng danh sách
import matplotlib.pyplot as plt x =[0, 1, 2, 3, 4, 5] y =[0, 2, 4, 6, 8, 10] # Plotting the graph plt.plot[x, y] # Setting the x-axis to 0-5 # and y-axis to 1-15 plt.axis[[0, 5, 1, 15]] # Showing the graph with an updated axis plt.show[]
đầu ra
b] Đặt phạm vi trục trong ô con
Một ô con về cơ bản là một trong nhiều ô trên cùng một hình. Để đặt phạm vi tùy chỉnh, chúng tôi sử dụng các chức năng hai lần
# Import Libraries import matplotlib.pyplot as plt import numpy as np # plot 1: plt.subplot[1, 2, 1] # Data for plot 1 x = np.arange[0 , 8, 0.2] y = np.sin[x] # Plotting plt.plot[x, y] # plot 2: plt.subplot[1, 2, 2] # Data for plot 2 x = np.arange[0 , 10 ,0.2] y = np.cos[x] # Set axes for the specific subplot plt.xlim[2, 8] plt.ylim[-0.50, 1.5] # Plotting plt.plot[x,y] # Auto adjust plt.tight_layout[] # Display plt.show[]
Giải trình
Chúng tôi tạo hai ô con trong một khung, đường cong hình sin và đường cong cosin tương ứng. Sau khi tạo các đường cong, chúng ta sử dụng các hàm xlim[] và ylim[] để thiết lập phạm vi của các trục X và Y tương ứng. Ở đây, phạm vi cho trục x là từ 2 đến 8 và cho trục y là -0. 5 đến 1. 5
đầu ra
c] Đặt phạm vi trục trong biểu đồ phân tán
Trong ví dụ này, chúng ta sẽ vẽ biểu đồ phân tán. Sau khi vẽ đồ thị, chúng tôi sẽ thay đổi các trục ban đầu bằng cách sử dụng các chức năng mà chúng tôi đã thực hiện trong bài viết này
import numpy as np import matplotlib.pyplot as plt #Generating sample data with random samples from the standard normal distribution A = np.random.standard_normal[[100, 2]] A += np.array[[-1, -1]] B = np.random.standard_normal[[100, 2]] B += np.array[[1, 1]] #Scatter plot generated with random values plt.scatter[B[:,0], B[:,1], c = 'k', s = 75.] plt.scatter[A[:,0], A[:,1], c = 'b', s = 25.] plt.xlim[1, 2] plt.ylim[0, 1] plt.show[]
Giải trình
Trong ví dụ này, chúng tôi đã tạo một biểu đồ phân tán bằng cách sử dụng các số ngẫu nhiên. Sau này, chúng tôi sử dụng các hàm xlim[] và ylim[] để đặt phạm vi
đầu ra
d] Đặt Phạm vi Trục trong biểu đồ Ngày giờ
Biểu đồ trong đó trục x ở định dạng ngày giờ hoặc trục y được gọi là biểu đồ ngày giờ
Bây giờ, chúng ta sẽ hiểu cách đặt phạm vi trục của biểu đồ ngày giờ bằng matplotlib
import datetime import matplotlib.pyplot as plt # Create subplot fig, ax = plt.subplots[] # Define Data x = [datetime.date[2022, 1, 15]] * 5 y = [2, 4, 1, 6, 8] # Set axes ax.set_xlim[[datetime.date[2022, 1, 1], datetime.date[2022, 2, 1]]] ax.set_ylim[[0, 10]] # Plot date ax.plot_date[x, y, markerfacecolor='r', markeredgecolor='k', markersize= 15] # Auto format fig.autofmt_xdate[] # Display plt.show[]
Giải trình
Trong ví dụ này, trục x của chúng tôi nằm trong khoảng từ 1-1-22 đến 1-2-2022. Chúng tôi sử dụng set_xlim[] và set_ylim[] để thay đổi phạm vi ban đầu
đầu ra
e] Đặt phạm vi trục bằng phương thức imshow[]
Để thay đổi các trục của chúng ta bằng hàm imshow[], chúng ta cần truyền thêm một đối số gọi là extent
Bằng cách sử dụng phạm vi, chúng tôi xác định tất cả các trục của mình trong một dòng mã. Trong ví dụ dưới đây, các trục là. [-1 đến 1 cho trục x và -1 đến 1 cho trục y]
# Import Library import numpy as np import matplotlib.pyplot as plt # Define Data x = np.arange[400].reshape[[20,20]] # Imshow set axes plt.imshow[x , extent=[-1,1,-1,1]] # Add Title plt.title[ "Imshow Plot" ] # Display plt.show[]
Giải thích Sử dụng phương thức imshow[], chúng ta sẽ thay đổi các trục từ -1 thành 1
đầu ra
f] Đặt Phạm vi trục sử dụng cùng tỷ lệ
Trong matplotlib, chúng ta có thể đặt giới hạn trục tỷ lệ giống nhau ở cả hai trục
________số 8_______Giải trình
Để đặt khía cạnh của tỷ lệ trục, chúng tôi sử dụng hàm set_aspect[]. Ở đây, khía cạnh được đặt bằng nhau, có nghĩa là đối với cả x và y, tỷ lệ từ dữ liệu sang đơn vị biểu đồ là như nhau
Đặt các trục giống nhau là rất quan trọng đối với các biểu đồ của chúng ta, vì nó giúp làm cho các biểu đồ của chúng ta thống nhất và dễ hiểu hơn
Trong biểu đồ bên dưới, chúng ta có thể thấy rằng các giới hạn của trục x và y là như nhau
đầu ra
g] Đặt phạm vi trục phụ
Sử dụng các trục phụ, chúng tôi sẽ tạo hai trục y và đặt phạm vi của chúng bằng các hàm set_xlim[] và set_ylim[]
# Import Library import numpy as np import matplotlib.pyplot as plt # Set figure size fig, ax = plt.subplots[figsize = [8,5]] # Define Data Coordinates x = np.arange[0, 40, 2] y1 = np.cos[x*20] y2 = x**2 # Title plt.title['Set Secondary axis range'] # Create Secondary Axes ax2 = ax.twinx[] ax.plot[x, y1, color = 'r'] ax2.plot[x, y2, color = 'b'] # Set axes range ax.set_xlim[0,45] ax.set_ylim[-1, 1] ax2.set_ylim[50, 3000] # Set Labels ax.set_xlabel['x-axis', color = 'r'] ax.set_ylabel['Primary y-axis', color = 'g'] ax2.set_ylabel['Secondary y-axis', color = 'b'] # Show plot plt.show[]
Giải trình
Chúng ta sử dụng hàm twinx[] để tạo các trục phụ. Sau khi thiết lập các trục phụ, chúng tôi đặt phạm vi bằng cách sử dụng hàm set_xlim[] và set_ylim[]
đầu ra
h] Đặt Phạm vi trục cho thang logarit
Trong phần này, chúng ta sẽ tìm hiểu cách sửa đổi phạm vi trục cho biểu đồ logarit
0# import packages import matplotlib.pyplot as plt import numpy as np # return values between 0 and 10, with a space of 0.1 x = np.arange[0, 10, 0.1] # generate the value of the cos function for given x values y = np.sin[x] # plot graph of the sine function plt.plot[y, color='blue'] plt.xlim[0, 50] plt.ylim[0, 1] # display plot plt.show[]
Giải trình
Để bắt đầu, chúng tôi xác định các điểm dữ liệu theo cấp số nhân trong biến "dữ liệu". Chúng tôi đặt tỷ lệ nhật ký ở trục y, sử dụng hàm yscale[]. Cuối cùng, chúng ta thay đổi phạm vi của các trục bằng cách sử dụng axis[] mà chúng ta đã học trước đó trong bài viết này
đầu ra
i] Đặt Phạm vi Trục trong biểu đồ 3D
Phần này sẽ khám phá cách sửa đổi giới hạn trục lô 3D
1# import packages import matplotlib.pyplot as plt import numpy as np # return values between 0 and 10, with a space of 0.1 x = np.arange[0, 10, 0.1] # generate the value of the cos function for given x values y = np.sin[x] # plot graph of the sine function plt.plot[y, color='blue'] plt.xlim[0, 50] plt.ylim[0, 1] # display plot plt.show[]
Giải trình
Có thể điều chỉnh giới hạn thấp nhất và tối đa trên mỗi trục bằng cách sử dụng các quy trình set xlim[], set ylim[] và set zlim[]
đầu ra
ví dụ
Dưới đây là một số ví dụ bổ sung, sẽ giúp bạn hiểu khái niệm thiết lập phạm vi ô của trục