Jak ustawić współczynnik proporcji w matplotlib


Współczynnik proporcji wykresu Matplotlib odnosi się do aspektu skalowania osi, to znaczy stosunku jednostki y do jednostki x.

Ten współczynnik można modyfikować za pomocą funkcji matplotlib.axes.Axes.set_aspect() .

W skrócie funkcja set_aspect() faktycznie zmienia tak zwany układ współrzędnych danych , ale w praktyce zazwyczaj chcemy zmienić wyświetlany układ współrzędnych .

Aby ułatwić tę konwersję, możemy użyć tego fragmentu kodu:

 #define y-unit to x-unit ratio
ratio = 1.0

#get x and y limits
x_left, x_right = ax. get_xlim ()
y_low, y_high = ax. get_ylim ()

#set aspect ratio
ax. set_aspect ( abs ((x_right-x_left)/(y_low-y_high))*ratio)

Przeanalizujmy przykład wykorzystania tej funkcji w praktyce.

Krok 1: Utwórz podstawowy wykres Matplotlib

Najpierw utwórzmy prosty wykres liniowy za pomocą Matplotlib:

 import matplotlib.pyplot as plt

#define matplotlib figure and axis
fig, ax = plt. subplots ()

#create simple line plot
ax. plot ([0, 10],[0, 20])

#displayplot
plt. show ()

Krok 2: Ustaw współczynnik proporcji (w niewłaściwy sposób)

Zauważ, że oś x jest dłuższa niż oś y. Spróbujmy ustawić współczynnik proporcji na 1, czyli oś x i oś y powinny być równe:

 import matplotlib.pyplot as plt

#define matplotlib figure and axis
fig, ax = plt. subplots ()

#create simple line plot
ax. plot ([0, 10],[0, 20])

#attempt to set aspect ratio to 1
ax. set_aspect (1)

#displayplot
plt. show () 

Należy pamiętać, że nie zadziałało to zgodnie z oczekiwaniami. Oś Y jest znacznie dłuższa niż oś X.

Krok 3: Ustaw proporcje (właściwy sposób)

Poniższy kod pokazuje, jak za pomocą prostego obliczenia ustawić prawidłowy współczynnik kształtu:

 import matplotlib.pyplot as plt

#define matplotlib figure and axis
fig, ax = plt. subplots ()

#create simple line plot
ax. plot ([0, 10],[0, 20])

#set aspect ratio to 1
ratio = 1.0
x_left, x_right = ax. get_xlim ()
y_low, y_high = ax. get_ylim ()
ax. set_aspect ( abs ((x_right-x_left)/(y_low-y_high))*ratio)

#displayplot
plt. show () 

Ustaw proporcje działki matplotlib

Należy zauważyć, że ten wykres ma oczekiwany współczynnik proporcji. Oś x i oś y mają równą długość.

Krok 4: Dostosuj proporcje według własnego uznania

Jeśli chcemy, aby oś Y była dłuższa niż oś X, możemy po prostu określić, że współczynnik proporcji będzie liczbą większą niż 1:

 import matplotlib.pyplot as plt

#define matplotlib figure and axis
fig, ax = plt. subplots ()

#create simple line plot
ax. plot ([0, 10],[0, 20])

#set aspect ratio to 3
ratio = 3
x_left, x_right = ax. get_xlim ()
y_low, y_high = ax. get_ylim ()
ax. set_aspect ( abs ((x_right-x_left)/(y_low-y_high))*ratio)

#displayplot
plt. show () 

format obrazu matplotlib

A jeśli chcemy, aby oś Y była krótsza niż oś X, możemy po prostu określić, że współczynnik proporcji będzie liczbą mniejszą niż 1:

 import matplotlib.pyplot as plt

#define matplotlib figure and axis
fig, ax = plt. subplots ()

#create simple line plot
ax. plot ([0, 10],[0, 20])

#set aspect ratio to .3
ratio = .3
x_left, x_right = ax. get_xlim ()
y_low, y_high = ax. get_ylim ()
ax. set_aspect ( abs ((x_right-x_left)/(y_low-y_high))*ratio)

#displayplot
plt. show () 

Współczynnik proporcji osi x Matplotlib dłuższy niż oś y

Więcej samouczków dotyczących Matplotlib znajdziesz tutaj .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *