Movatterモバイル変換


[0]ホーム

URL:


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

Sign up
Appearance settings

Commit773363f

Browse files
committed
Add framework for un-converting units
1 parent6870ac0 commit773363f

File tree

3 files changed

+41
-7
lines changed

3 files changed

+41
-7
lines changed

‎lib/matplotlib/axis.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1576,6 +1576,16 @@ def convert_units(self, x):
15761576
f'units:{x!r}')frome
15771577
returnret
15781578

1579+
@property
1580+
def_can_unconvert_units(self):
1581+
ifself.converterisnotNone:
1582+
ifhasattr(self.converter,'un_convert'):
1583+
returnTrue
1584+
returnFalse
1585+
1586+
defunconvert_units(self,x):
1587+
returnself.converter.un_convert(x,self.units,self)
1588+
15791589
defset_units(self,u):
15801590
"""
15811591
Set the units for axis.

‎lib/matplotlib/dates.py‎

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1873,15 +1873,13 @@ def weeks(w):
18731873
returnw*DAYS_PER_WEEK
18741874

18751875

1876-
classDateConverter(units.ConversionInterface):
1876+
classBaseDateConverter(units.ConversionInterface):
18771877
"""
1878-
Converter for datetime.date and datetime.datetime data,
1879-
or for date/time data represented as it would be converted
1880-
by :func:`date2num`.
1878+
A base converter for datetime.date and datetime.datetime data, or for
1879+
date/time data represented as it would be converted by :func:`date2num`.
18811880
18821881
The 'unit' tag for such data is None or a tzinfo instance.
18831882
"""
1884-
18851883
@staticmethod
18861884
defaxisinfo(unit,axis):
18871885
"""
@@ -1930,6 +1928,24 @@ def default_units(x, axis):
19301928
returnNone
19311929

19321930

1931+
classDateConverter(BaseDateConverter):
1932+
@staticmethod
1933+
defun_convert(value,unit,axis):
1934+
returnnum2date(value)
1935+
1936+
1937+
classDatetime64Converter(BaseDateConverter):
1938+
@staticmethod
1939+
defun_convert(value,unit,axis):
1940+
returnnp.datetime64(num2date(value).replace(tzinfo=None))
1941+
1942+
1943+
classDatetimeConverter(BaseDateConverter):
1944+
@staticmethod
1945+
defun_convert(value,unit,axis):
1946+
returnnum2date(value)
1947+
1948+
19331949
classConciseDateConverter(DateConverter):
19341950
"""
19351951
Converter for datetime.date and datetime.datetime data,
@@ -1968,6 +1984,6 @@ def axisinfo(self, unit, axis):
19681984
default_limits=(datemin,datemax))
19691985

19701986

1971-
units.registry[np.datetime64]=DateConverter()
1987+
units.registry[np.datetime64]=Datetime64Converter()
19721988
units.registry[datetime.date]=DateConverter()
1973-
units.registry[datetime.datetime]=DateConverter()
1989+
units.registry[datetime.datetime]=DatetimeConverter()

‎lib/matplotlib/units.py‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,14 @@ def convert(obj, unit, axis):
137137
"""
138138
returnobj
139139

140+
@staticmethod
141+
defun_convert(data,unit,axis):
142+
"""
143+
Convert data that has already been converted back to its original
144+
value.
145+
"""
146+
returndata
147+
140148
@staticmethod
141149
defis_numlike(x):
142150
"""

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp