All rendered in a jupter notebook with %matplotlib inline

The following non-time series plot works fine

dd = pd.DataFrame({'a':[-1,1,2], 'b':[3,2,3]})

fig, ax = plt.subplots()

dd.a.plot.bar(ax=ax)
dd.b.plot(ax=ax)

The following timeseries variant results in the bars not appearing on the plot, but the y_lim range showing it formed part of the rendering.

rng = pd.period_range('1/1/2000', '3/30/2000', freq='M')
dd = pd.DataFrame({'a':[-1,1,2], 'b':[3,2,3]}, index=rng)

fig, ax = plt.subplots()

dd.a.plot.bar(ax=ax)
dd.b.plot(ax=ax)

And swapping the plot order shows that the dates for the bars are being set to the epoch - with the line not being rendered - but the line tick labels are (along with the epoch dates for the bars).

rng = pd.period_range('1/1/2000', '3/30/2000', freq='M')
dd = pd.DataFrame({'a':[-1,1,2], 'b':[3,2,3]}, index=rng)

fig, ax = plt.subplots()

dd.b.plot(ax=ax)
dd.a.plot.bar(ax=ax)

I'm guessing the xaxis tick values for the bar variable are being set to commence at zero, resulting in the the rendered dates to commence at the epoch.

But the xaxis values for the variable plotted as a line do not change, but are now at a different value to the bar variable.

Condsequently, only the line or the bar is rendered, depending on the plotting order.

I'm guessing the issue is in the time series converter.py module.

With some guidance, I'm happy to try and pin it down further. I do have spare time at the moment.

Comment From: sinhrks

Thanks for the report. It's dupe with #10761.

It is because line plot performs time-series conversion and bar plot doesn't. PR is appreciated! - https://github.com/pydata/pandas/blob/master/pandas/tools/plotting.py#L1688