改进子图的格式化和空间

问题描述 投票:0回答:1

我正在尝试调整横向磁场和电场波的4个透射率和反射子图之间的间距。我将4个图添加到1个图中。我的目标是更改子图边距,这样我就不会得到重叠的子图。我使用下面的代码

import matplotlib.pyplot as plt
import numpy as np


"DEFINE FRESNEL EQUATIONS"


"""Define reflection coefficient for Transverse electric waves"""

### Reflection coefficient

def Ref_1(theta):

    n_1=1.33

    r_TE_1 = np.cos(theta) - np.sqrt(n_1**2 - np.sin(theta)**2)
    r_TE_1 = r_TE_1 / (r_TE_1 + 2*np.sqrt(n_1**2 - np.sin(theta)**2))

    return r_TE_1


###  transmission coefficient

def Trans_1(theta):

    n_2=1.5

    r_TE_2 = 2*np.cos(theta)
    r_TE_2 = r_TE_2 / (np.cos(theta) + np.sqrt(n_2**2 - np.sin(theta)**2))

    return r_TE_2


"""Define reflection coefficient for Transverse magnetic waves"""


### Reflection coefficient

def Ref_2(theta):

    n_1=1.33

    r_TM = np.sqrt(n_1**2 - np.sin(theta)**2) - n_1**2*np.cos(theta)
    r_TM = r_TM / (np.sqrt(n_1**2 - np.sin(theta)**2) + n_1**2*np.cos(theta))

    return r_TM


###  transmission coefficient

def Trans_2(theta):

    n_2=1.5

    r_TM_2 = 2*np.cos(theta)
    r_TM_2 = r_TM_2 / (np.cos(theta)*n_2**2+np.sqrt(n_2**2-np.sqrt(theta))**2)

    return r_TM_2


"Set Fontlabel, Fontaxis"
Fontlabel=12
Fontaxis=13

"Plot results"
plt.figure()
fig=plt.figure()

Hoek = np.linspace(0,90,1)
print(Trans_2(100*(180/np.pi)))
ax1=fig.add_subplot(221)
ax1.plot(Hoek,Ref_1(Hoek),'blue',linewidth=0.8)
plt.title('TE gepolariseerd licht bij Refrectie')
plt.xlabel('$Hoek (\Theta)$')
plt.ylabel('$Amplitude$')

ax2=fig.add_subplot(222)
ax2.plot(Hoek,Trans_1(Hoek),'red',linewidth=0.8)
plt.title('TE gepolariseerd licht bij Transmissie')
plt.xlabel('$Hoek (\Theta)$')
plt.ylabel('$Amplitude$')

ax3=fig.add_subplot(223)
ax3.plot(Hoek,Ref_2(Hoek),'green',linewidth=0.8)
plt.title('TM gepolariseerd licht bij Reflectie')
plt.xlabel('$Hoek (\Theta)$')
plt.ylabel('$Amplitude$')


ax4=fig.add_subplot(224)
ax4.plot(Hoek,Trans_2(Hoek),'black',linewidth=0.8)
plt.title('TM gepolariseerd licht bij Transmissie')
plt.xlabel('$Hoek (\Theta)$')
plt.ylabel('$Amplitude$')
plt.subplots_adjust(hspace=0.9)
#plt.show()

使用这个子图我得到以下不良格式。我不知道如何更改子图边距,因此我没有得到彼此重叠的子图。

enter image description here

python matplotlib
1个回答
0
投票

可以使用以下代码调整子图之间的空间

plt.subplots_adjust(top=1.5,bottom=0.18, left=0.2, right=2, hspace=0.4, wspace=0.2)
© www.soinside.com 2019 - 2024. All rights reserved.