Sorun, aspect='equal'
alt planların keyfi bir en-boy oranına uzanmasını ve tüm boş alanı doldurmasını engelleyen kullanımıdır .
Normalde bu işe yarar:
import matplotlib.pyplot as plt
ax = [plt.subplot(2,2,i+1) for i in range(4)]
for a in ax:
a.set_xticklabels([])
a.set_yticklabels([])
plt.subplots_adjust(wspace=0, hspace=0)
Sonuç şudur:
Bununla birlikte, aspect='equal'
aşağıdaki kodda olduğu gibi:
import matplotlib.pyplot as plt
ax = [plt.subplot(2,2,i+1) for i in range(4)]
for a in ax:
a.set_xticklabels([])
a.set_yticklabels([])
a.set_aspect('equal')
plt.subplots_adjust(wspace=0, hspace=0)
Biz bunu elde ederiz:
Bu ikinci durumdaki fark, x ve y eksenlerini aynı sayıda birim / piksele sahip olmaya zorlamış olmanızdır. Eksenler varsayılan olarak 0'dan 1'e gittiğinden (yani, herhangi bir şeyi çizmeden önce), aspect='equal'
her ekseni bir kare olmaya zorlar. Şekil bir kare olmadığından, pyplot yatay olarak eksenler arasına fazladan boşluk ekler.
Bu sorunu aşmak için, figürünüzü doğru en boy oranına sahip olacak şekilde ayarlayabilirsiniz. Burada genel olarak daha üstün olduğunu düşündüğüm nesne yönelimli pyplot arayüzünü kullanacağız:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8,8)) # Notice the equal aspect ratio
ax = [fig.add_subplot(2,2,i+1) for i in range(4)]
for a in ax:
a.set_xticklabels([])
a.set_yticklabels([])
a.set_aspect('equal')
fig.subplots_adjust(wspace=0, hspace=0)
İşte sonuç:
None
düşündüğünüzü yapmıyor, 'varsayılanı kullan' anlamına geliyor.