Mostrando leyenda para solo una subtrama usando matplotlib

Estoy enfrentando un problema al mostrar la leyenda en el formato correcto usando matplotlib.

EDITAR: Tengo 4 subtramas en una figura en formato 2 por 2 y quiero una leyenda solo en la primera subtrama que tiene dos líneas trazadas. La leyenda que obtuve usando el código adjunto a continuación contenía infinitas entradas y se extendía verticalmente a lo largo de la figura. Cuando uso el mismo código usando linspace para generar datos falsos, la leyenda funciona absolutamente bien.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
import os

#------------------set default directory, import data and create column output vectors---------------------------#

path="C:/Users/Pacman/Data files"
os.chdir(path)
data =np.genfromtxt('vrp.txt')

x=np.array([data[:,][:,0]])

y1=np.array([data[:,][:,6]])
y2=np.array([data[:,][:,7]])
y3=np.array([data[:,][:,9]])
y4=np.array([data[:,][:,11]])
y5=np.array([data[:,][:,10]])

nrows=2
ncols=2
tick_l=6   #length of ticks
fs_axis=16 #font size of axis labels


plt.rcParams['axes.linewidth'] = 2         #Sets global line width of all the axis
plt.rcParams['xtick.labelsize']=14         #Sets global font size for x-axis labels
plt.rcParams['ytick.labelsize']=14         #Sets global font size for y-axis labels



plt.subplot(nrows, ncols, 1)

ax=plt.subplot(nrows, ncols, 1)
l1=plt.plot(x, y2, 'yo',label='Flow rate-fan')
l2=plt.plot(x,y3,'ro',label='Flow rate-discharge')
plt.title('(a)')
plt.ylabel('Flow rate ($m^3 s^{-1}$)',fontsize=fs_axis)
plt.xlabel('Rupture Position (ft)',fontsize=fs_axis)

# This part is not working
plt.legend(loc='upper right', fontsize='x-large')

#Same code for rest of the subplots

Traté de implementar una solución sugerida en el siguiente enlace, sin embargo, no pude hacerlo funcionar:¿Cómo hago una sola leyenda para muchas subtramas con matplotlib?

Cualquier ayuda en este asunto será muy apreciada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta