PERF: Period plotting performance
Setup

```python
In [3]: N = 2000
   ...: M = 5
   ...: idx = date_range('1/1/1975', periods=N)
   ...: df = DataFrame(np.random.randn(N, M), index=idx)
```

0.23.4:

```python
In [3]: %time df.plot()
CPU times: user 274 ms, sys: 66.7 ms, total: 340 ms
Wall time: 377 ms
Out[3]: <matplotlib.axes._subplots.AxesSubplot at 0x11eda6128>
```

HEAD:

```python
In [4]: %time df.plot()
CPU times: user 141 ms, sys: 32.6 ms, total: 173 ms
Wall time: 194 ms
Out[4]: <matplotlib.axes._subplots.AxesSubplot at 0x11550a5f8>
```

Closes https://github.com/pandas-dev/pandas/issues/24304