I have successfully created a figure of four sub-plots and two of subplots having double y-axis features as shown below. Each subplot has many different plots. I wanted to add a legend. But, I could not do it with code. The figure is given below:

[![enter image description here](https://i.stack.imgur.com/N3UAz.png)](https://i.stack.imgur.com/N3UAz.png)

My code is given below: 

```
fig, axs = plt.subplots(2,2,figsize=(17,10))
fig.legend(loc="center right", fontsize=13,fancybox=True, framealpha=1, shadow=True, borderpad=1)    
plt.rc('font',family='Times New Roman')
.
.
for i,j in zip(IV_start_index,IV_start_index[1:]):  # This is simple code to access present and next element in a list    
    axs[0][0].plot(module_allData_df['Time'].iloc[mpp_index],pmpp_theo,'bs',label="Theoretical")
    axs[0][0].plot(module_allData_df['Time'].iloc[mpp_index],pmpp_act,'rd',label="Actual")
    .  
    .  
    plt.suptitle('A NIST Module %s power loss analysis'%(module_allData_df['Time'].loc[i].strftime('%Y-%m-%d')),fontsize=18) # 
    plt.savefig('All_day_power_loss')

```

The output is: 

```
No handles with labels found to put in legend.

```

Could you help me to correct my code? 

Corrections: 
I did change the code as given below. 

```
for i,j in zip(IV_start_index,IV_start_index[1:]):  # This is simple code to access present and next element in a list    
        axs[0][0].plot(module_allData_df['Time'].iloc[mpp_index],pmpp_theo,'bs',label="Theoretical")
        axs[0][0].plot(module_allData_df['Time'].iloc[mpp_index],pmpp_act,'rd',label="Actual")
        axs[0][0].legend()

```

It has created many legends.The output figure is given below: 

[![enter image description here](https://i.stack.imgur.com/M2ucr.png)](https://i.stack.imgur.com/M2ucr.png)