Legende für nur eine Nebenhandlung mit matplotlib anzeigen

Ich habe ein Problem damit, die Legende mit matplotlib im richtigen Format anzuzeigen.

EDIT: Ich habe 4 Unterzeichnungen in einer Figur im Format 2 mal 2 und ich möchte eine Legende nur in der ersten Unterzeichnung, in der zwei Linien eingezeichnet sind. Die Legende, die ich mit dem unten angehängten Code erhalten habe, enthielt endlose Einträge und erstreckte sich vertikal über die Figur. Wenn ich denselben Code mit linspace verwende, um gefälschte Daten zu generieren, funktioniert die Legende einwandfrei.

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

Ich habe versucht, einen in folgendem Link vorgeschlagenen Fix zu implementieren, konnte ihn jedoch nicht zum Laufen bringen:wie erstelle ich mit matplotlib eine einzige Legende für viele Untergrundstücke?

Jede Hilfe in dieser Hinsicht wird sehr geschätzt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage