Làm cách nào để bạn thay đổi tỷ lệ trên biểu đồ python?

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

    # 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[]
0

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

    # 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[]
1

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

Chủ Đề