@@ -1784,8 +1784,11 @@ class DateConverter(units.ConversionInterface):
1784
1784
The 'unit' tag for such data is None or a tzinfo instance.
1785
1785
"""
1786
1786
1787
- @staticmethod
1788
- def axisinfo (unit , axis ):
1787
+ def __init__ (self , interval_multiples = True ):
1788
+ self ._interval_multiples = interval_multiples
1789
+ super ().__init__ ()
1790
+
1791
+ def axisinfo (self , unit , axis ):
1789
1792
"""
1790
1793
Return the `~matplotlib.units.AxisInfo` for *unit*.
1791
1794
@@ -1794,7 +1797,8 @@ def axisinfo(unit, axis):
1794
1797
"""
1795
1798
tz = unit
1796
1799
1797
- majloc = AutoDateLocator (tz = tz )
1800
+ majloc = AutoDateLocator (tz = tz ,
1801
+ interval_multiples = self ._interval_multiples )
1798
1802
majfmt = AutoDateFormatter (majloc , tz = tz )
1799
1803
datemin = datetime .date (2000 , 1 , 1 )
1800
1804
datemax = datetime .date (2010 , 1 , 1 )
@@ -1836,17 +1840,19 @@ class ConciseDateConverter(DateConverter):
1836
1840
# docstring inherited
1837
1841
1838
1842
def __init__ (self , formats = None , zero_formats = None , offset_formats = None ,
1839
- show_offset = True ):
1843
+ show_offset = True , interval_multiples = True ):
1840
1844
self ._formats = formats
1841
1845
self ._zero_formats = zero_formats
1842
1846
self ._offset_formats = offset_formats
1843
1847
self ._show_offset = show_offset
1848
+ self ._interval_multiples = interval_multiples
1844
1849
super ().__init__ ()
1845
1850
1846
1851
def axisinfo (self , unit , axis ):
1847
1852
# docstring inherited
1848
1853
tz = unit
1849
- majloc = AutoDateLocator (tz = tz )
1854
+ majloc = AutoDateLocator (tz = tz ,
1855
+ interval_multiples = self ._interval_multiples )
1850
1856
majfmt = ConciseDateFormatter (majloc , tz = tz , formats = self ._formats ,
1851
1857
zero_formats = self ._zero_formats ,
1852
1858
offset_formats = self ._offset_formats ,
@@ -1857,6 +1863,25 @@ def axisinfo(self, unit, axis):
1857
1863
default_limits = (datemin , datemax ))
1858
1864
1859
1865
1860
- units .registry [np .datetime64 ] = DateConverter ()
1861
- units .registry [datetime .date ] = DateConverter ()
1862
- units .registry [datetime .datetime ] = DateConverter ()
1866
+
1867
+ def register_converters ():
1868
+ """
1869
+ Helper to register the date converters.
1870
+
1871
+ Useful to call if the :rc:`date.converter` or :rc:`date.interval_multiples`
1872
+ change.
1873
+ """
1874
+ if matplotlib .rcParams ['date.converter' ] == 'concise' :
1875
+ converter = ConciseDateConverter
1876
+ else :
1877
+ converter = DateConverter
1878
+
1879
+ interval_multiples = matplotlib .rcParams ['date.interval_multiples' ]
1880
+ units .registry [np .datetime64 ] = converter (
1881
+ interval_multiples = interval_multiples )
1882
+ units .registry [datetime .date ] = converter (
1883
+ interval_multiples = interval_multiples )
1884
+ units .registry [datetime .datetime ] = converter (
1885
+ interval_multiples = interval_multiples )
1886
+
1887
+ register_converters ()
0 commit comments