Importing Pandas In Python Changes How Matplotlib Handles Datetime Objects?
On my debian squeeze system, I ran into a python problem that can be distilled to the following: import numpy import datetime from matplotlib import pyplot x = [datetime.datetime.u
Solution 1:
When you import pandas
it registers a bunch of unit converters with matplotlib
. This is from more updated versions of both libraries, but I assume that the overall behavior is the same.
In [4]: import matplotlib.units as muints
In [5]: muints.registry
Out[5]:
{datetime.date: <matplotlib.dates.DateConverterinstanceat0x2ab8908>,
datetime.datetime: <matplotlib.dates.DateConverterinstanceat0x2ab8ab8>}
In [6]: import pandas
In [7]: muints.registry
Out[7]:
{pandas.tseries.period.Period: <pandas.tseries.converter.PeriodConverterinstanceat0x2627e60>,
pandas.tslib.Timestamp: <pandas.tseries.converter.DatetimeConverterinstanceat0x264ea28>,
datetime.date: <pandas.tseries.converter.DatetimeConverterinstanceat0x2532fc8>,
datetime.datetime: <pandas.tseries.converter.DatetimeConverterinstanceat0x2627ab8>,
datetime.time: <pandas.tseries.converter.TimeConverterinstanceat0x2532f38>}
This registry is used by axis
(with a few layers of re-direction) to determine how to format information that is not numbers and it matches on the class of the thing it is trying to label with (hence, the entries in the dictionary keyed to datetime.*
).
I suspect you can fix this by replacing the offending entries in dict
Post a Comment for "Importing Pandas In Python Changes How Matplotlib Handles Datetime Objects?"