Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4c83537

Browse filesBrowse files
committed
Merge pull request #5698 from tacaswell/dflt_autodateformat
Dflt autodateformat
2 parents f52afbf + 5206cb0 commit 4c83537
Copy full SHA for 4c83537

File tree

Expand file treeCollapse file tree

6 files changed

+75
-18
lines changed
Filter options
Expand file treeCollapse file tree

6 files changed

+75
-18
lines changed

‎doc/users/whats_new/rcparams.rst

Copy file name to clipboard
+24-2Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,27 @@
1-
Added ``svg.hashsalt`` key to rcParams
2-
```````````````````````````````````````
1+
Configuration (rcParams)
2+
------------------------
3+
4+
+----------------------------+--------------------------------------------------+
5+
| Parameter | Description |
6+
+============================+==================================================+
7+
|`date.autoformatter.year` | foramt string for 'year' scale dates |
8+
+----------------------------+--------------------------------------------------+
9+
|`date.autoformatter.month` | format string for 'month' scale dates |
10+
+----------------------------+--------------------------------------------------+
11+
|`date.autoformatter.day` | format string for 'day' scale dates |
12+
+----------------------------+--------------------------------------------------+
13+
|`date.autoformatter.hour` | format string for 'hour' scale times |
14+
+----------------------------+--------------------------------------------------+
15+
|`date.autoformatter.minute` | format string for 'minute' scale times |
16+
+----------------------------+--------------------------------------------------+
17+
|`date.autoformatter.second` | format string for 'second' scale times |
18+
+----------------------------+--------------------------------------------------+
19+
|`svg.hashsalt` | see note |
20+
+----------------------------+--------------------------------------------------+
21+
22+
``svg.hashsalt``
23+
````````````````
24+
325
If ``svg.hashsalt`` is ``None`` (which it is by default), the svg backend uses ``uuid4`` to generate the hash salt.
426
If it is not ``None``, it must be a string that is used as the hash salt instead of ``uuid4``.
527
This allows for deterministic SVG output.

‎lib/matplotlib/dates.py

Copy file name to clipboardExpand all lines: lib/matplotlib/dates.py
+16-13Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@
113113
unicode_literals)
114114

115115
from matplotlib.externals import six
116-
from matplotlib.externals.six.moves import xrange, zip
117-
116+
from matplotlib.externals.six.moves import zip
117+
from matplotlib import rcParams
118118
import re
119119
import time
120120
import math
@@ -629,12 +629,12 @@ class AutoDateFormatter(ticker.Formatter):
629629
format string. The default looks like this::
630630
631631
self.scaled = {
632-
365.0 : '%Y',
633-
30. : '%b %Y',
634-
1.0 : '%b %d %Y',
635-
1./24. : '%H:%M:%S',
636-
1. / (24. * 60.): '%H:%M:%S.%f',
637-
}
632+
DAYS_PER_YEAR: rcParams['date.autoformat.year'],
633+
DAYS_PER_MONTH: rcParams['date.autoformat.month'],
634+
1.0: rcParams['date.autoformat.day'],
635+
1. / HOURS_PER_DAY: rcParams['date.autoformat.hour'],
636+
1. / (MINUTES_PER_DAY): rcParams['date.autoformat.minute'],
637+
1. / (SEC_PER_DAY): rcParams['date.autoformat.second']}
638638
639639
640640
The algorithm picks the key in the dictionary that is >= the
@@ -685,11 +685,14 @@ def __init__(self, locator, tz=None, defaultfmt='%Y-%m-%d'):
685685
self._tz = tz
686686
self.defaultfmt = defaultfmt
687687
self._formatter = DateFormatter(self.defaultfmt, tz)
688-
self.scaled = {DAYS_PER_YEAR: '%Y',
689-
DAYS_PER_MONTH: '%b %Y',
690-
1.0: '%b %d %Y',
691-
1. / HOURS_PER_DAY: '%H:%M:%S',
692-
1. / (MINUTES_PER_DAY): '%H:%M:%S.%f'}
688+
self.scaled = {DAYS_PER_YEAR: rcParams['date.autoformatter.year'],
689+
DAYS_PER_MONTH: rcParams['date.autoformatter.month'],
690+
1.0: rcParams['date.autoformatter.day'],
691+
1. / HOURS_PER_DAY: rcParams['date.autoformatter.hour'],
692+
1. / (MINUTES_PER_DAY):
693+
rcParams['date.autoformatter.minute'],
694+
1. / (SEC_PER_DAY):
695+
rcParams['date.autoformatter.second']}
693696

694697
def __call__(self, x, pos=None):
695698
locator_unit_scale = float(self._locator._get_unit())

‎lib/matplotlib/mpl-data/stylelib/classic.mplstyle

Copy file name to clipboardExpand all lines: lib/matplotlib/mpl-data/stylelib/classic.mplstyle
+7Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,13 @@ axes.spines.top : True
215215
polaraxes.grid : True # display grid on polar axes
216216
axes3d.grid : True # display grid on 3d axes
217217

218+
date.autoformatter.year : %Y
219+
date.autoformatter.month : %b %Y
220+
date.autoformatter.day : %b %d %Y
221+
date.autoformatter.hour : %H:%M:%S
222+
date.autoformatter.minute : %H:%M:%S.%f
223+
date.autoformatter.second : %H:%M:%S.%f
224+
218225
### TICKS
219226
# see http://matplotlib.org/api/axis_api.html#matplotlib.axis.Tick
220227

‎lib/matplotlib/rcsetup.py

Copy file name to clipboardExpand all lines: lib/matplotlib/rcsetup.py
+7Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,6 +1015,13 @@ def validate_hist_bins(s):
10151015
'polaraxes.grid': [True, validate_bool], # display polar grid or
10161016
# not
10171017
'axes3d.grid': [True, validate_bool], # display 3d grid
1018+
# TODO validate that these are valid datetime format strings
1019+
'date.autoformatter.year': ['%Y', six.text_type],
1020+
'date.autoformatter.month': ['%Y-%m', six.text_type],
1021+
'date.autoformatter.day': ['%Y-%m-%d', six.text_type],
1022+
'date.autoformatter.hour': ['%H:%M', six.text_type],
1023+
'date.autoformatter.minute': ['%H:%M:%S', six.text_type],
1024+
'date.autoformatter.second': ['%H:%M:%S.%f', six.text_type],
10181025

10191026
#legend properties
10201027
'legend.fancybox': [False, validate_bool],

‎matplotlibrc.template

Copy file name to clipboardExpand all lines: matplotlibrc.template
+18-1Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
# You can also deploy your own backend outside of matplotlib by
3636
# referring to the module name (which must be in the PYTHONPATH) as
3737
# 'module://my_backend'.
38-
backend : %(backend)s
38+
backend : $TEMPLATE_BACKEND
3939

4040
# If you are using the Qt4Agg backend, you can choose here
4141
# to use the PyQt4 bindings or the newer PySide bindings to
@@ -311,6 +311,7 @@ backend : %(backend)s
311311
# small compared to the minimum absolute
312312
# value of the data.
313313

314+
314315
#axes.unicode_minus : True # use unicode for the minus symbol
315316
# rather than hyphen. See
316317
# http://en.wikipedia.org/wiki/Plus_and_minus_signs#Character_codes
@@ -328,6 +329,22 @@ backend : %(backend)s
328329
#polaraxes.grid : True # display grid on polar axes
329330
#axes3d.grid : True # display grid on 3d axes
330331

332+
### DATES
333+
# These control the default format strings used in AutoDateFormatter.
334+
# Any valid format datetime format string can be used (see the python
335+
# `datetime` for details). For example using '%%x' will use the locale date representation
336+
# '%%X' will use the locale time representation and '%%c' will use the full locale datetime
337+
# representation.
338+
# These values map to the scales:
339+
# {'year': 365, 'month': 30, 'day': 1, 'hour': 1/24, 'minute': 1 / (24 * 60)}
340+
341+
# date.autoformatter.year : %Y
342+
# date.autoformatter.month : %Y-%m
343+
# date.autoformatter.day : %Y-%m-%d
344+
# date.autoformatter.hour : %H:%M
345+
# date.autoformatter.minute : %H:%M:%S
346+
# date.autoformatter.second : %H:%M:%S.%f
347+
331348
### TICKS
332349
# see http://matplotlib.org/api/axis_api.html#matplotlib.axis.Tick
333350

‎setup.py

Copy file name to clipboardExpand all lines: setup.py
+3-2Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"""
55

66
from __future__ import print_function, absolute_import
7-
7+
from string import Template
88
# This needs to be the very first thing to use distribute
99
from distribute_setup import use_setuptools
1010
use_setuptools()
@@ -230,8 +230,9 @@ def run(self):
230230
default_backend = setupext.options['backend']
231231
with open('matplotlibrc.template') as fd:
232232
template = fd.read()
233+
template = Template(template)
233234
with open('lib/matplotlib/mpl-data/matplotlibrc', 'w') as fd:
234-
fd.write(template % {'backend': default_backend})
235+
fd.write(template.safe_substitute(TEMPLATE_BACKEND=default_backend))
235236

236237
# Build in verbose mode if requested
237238
if setupext.options['verbose']:

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.