Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork8.1k
Closed
Description
Bug report
Bug summary
When adding aRectangle patch to a plot with a datetime x-axis the width of the patch is plotted wrong.
Code for reproduction
import pandas as pdimport matplotlib.pyplot as mppimport matplotlib.patches as patchesimport datetimedata = 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.
Callingax.patches[0].get_width() correctly returnsdatetime.datetime(2018, 2, 4, 0, 0).
It doesn't matter if you usedatetime.datetime,np.datetime64, orpd.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