Closed
Description
Bug report
Bug summary
When adding a Rectangle
patch to a plot with a datetime x-axis the width of the patch is plotted wrong.
Code for reproduction
import pandas as pd
import matplotlib.pyplot as mpp
import matplotlib.patches as patches
import datetime
data = pd.DataFrame({"Timestamp":pd.date_range(start=datetime.datetime(2018,1,30,0,0,0),end=datetime.datetime(2018,2,8,0,0,0),freq='d'),"Requests":[5,4,7,3,5,4,5,6,7,8]})
fig,ax = mpp.subplots()
ax.plot(data.Timestamp,data.Requests)
ax.add_patch(patches.Rectangle((datetime.datetime(2018,2,2,0,0,0),ax.get_ylim()[0]),datetime.datetime(2018,2,2,0,0,0)+datetime.timedelta(days=2),ax.get_ylim()[1]))
fig.show()
Actual outcome
I'm expecting a patch with a width of two days to appear on the plot, instead the patch fills the whole plot to the right rim.
Calling ax.patches[0].get_width()
correctly returns datetime.datetime(2018, 2, 4, 0, 0)
.
It doesn't matter if you use datetime.datetime
, np.datetime64
, or pd.Timestamp
, the results are the same.
EDIT: To get the correct width of two days, width really just has to set to 2.
Matplotlib version
- Operating system: Windows 10
- Matplotlib version: 2.1.2
- Matplotlib backend: Qt5Agg
- Python version: 3.6.4
- Other libraries: Pandas 0.22.0, Numpy 1.13.3
Libraries installed with Conda, channels: defaults, conda-forge, anaconda-fusion
Metadata
Metadata
Assignees
Labels
No labels