Matplotlib'de en boy oranı nasıl ayarlanır


Bir matplotlib grafiğinin en-boy oranı , eksen ölçeklendirmesinin en-boy oranını, yani y biriminin x birimine oranını ifade eder.

Bu oran matplotlib.axes.Axes.set_aspect() işlevi kullanılarak değiştirilebilir.

Aslında set_aspect() işlevi aslında veri koordinat sistemi adı verilen sistemi değiştirir, ancak pratikte genellikle ekran koordinat sistemini değiştirmek isteriz.

Bu dönüşümü kolaylaştırmak için şu kod parçasını kullanabiliriz:

 #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)

Bu fonksiyonun pratikte kullanımına ilişkin bir örnek üzerinden geçelim.

Adım 1: Temel Matplotlib Grafiği Oluşturun

İlk önce Matplotlib’i kullanarak basit bir çizgi grafiği oluşturalım:

 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 ()

Adım 2: En boy oranını ayarlayın (yanlış şekilde)

X ekseninin y ekseninden daha uzun olduğuna dikkat edin. En boy oranını 1’e ayarlamaya çalışalım, yani x ekseni ve y ekseni eşit olmalıdır:

 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 () 

Bunun beklendiği gibi çalışmadığını unutmayın. Y ekseni x ekseninden çok daha uzundur.

3. Adım: En boy oranını ayarlayın (doğru şekilde)

Aşağıdaki kod, doğru en boy oranını ayarlamak için basit bir hesaplamanın nasıl kullanılacağını gösterir:

 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 () 

Çizim oranlarını ayarlayın matplotlib

Bu grafiğin beklediğimiz en boy oranına sahip olduğunu unutmayın. X ekseni ve y ekseni uzunluk olarak eşittir.

4. Adım: En boy oranını istediğiniz gibi ayarlayın

Y ekseninin x ekseninden daha uzun olmasını istiyorsak en boy oranının 1’den büyük bir sayı olmasını basitçe belirtebiliriz:

 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 () 

matplotlib resim formatı

Y ekseninin x ekseninden daha kısa olmasını istiyorsak en boy oranının 1’den küçük bir sayı olmasını basitçe belirtebiliriz:

 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 () 

Matplotlib x ekseni en boy oranı y ekseninden daha uzun

Daha fazla Matplotlib eğitimini burada bulabilirsiniz.

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir