VIS Wrong legend when combining multiple plots on the same axes , plotting with `legend=False` messes up legend 
- [x] closes #39522
- [x] closes #40044
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry

So, in #27808 , `leg.legendHandles` was replaced with `ax.get_legend_handles_labels()[0]` in order to preserve marker info.

However, `ax.get_legend_handles_labels()[0]` may contain extra elements which aren't (yet) visible, which means we may end up at 

https://github.com/pandas-dev/pandas/blob/272435073c70b4421f72184663837f4864601f11/pandas/plotting/_matplotlib/core.py#L625

with
```python
(Pdb) handles
[<matplotlib.lines.Line2D object at 0x7f0938a37430>, <ErrorbarContainer object of 3 artists>, <matplotlib.lines.Line2D object at 0x7f0938a37430>]
(Pdb) labels
['orange', 'blue']
```

This causes the permuting noted in #39522

Ideally, there would be a way to get `leg.legendHandles` in a way that preserves the marker info. However, I can't find a way to do that - have asked on the matplotlib discourse. Also, the current test doesn't quite work (as it passes on `master` too). I'm working on finding a satisfactory solution

---

On master:

![image](https://user-images.githubusercontent.com/33491632/109154213-e4440f80-7765-11eb-8c76-7d70ccddf447.png)

On this branch:

![image](https://user-images.githubusercontent.com/33491632/109154268-f8880c80-7765-11eb-839f-e239a909b8fe.png)

---

cc @charlesdong1991 in case you have comments / suggestions