@@ -931,8 +931,7 @@ def set_tick_params(self, which='major', reset=False, **kwargs):
931
931
"""
932
932
Set appearance parameters for ticks, ticklabels, and gridlines.
933
933
934
- For documentation of keyword arguments, see
935
- :meth:`matplotlib.axes.Axes.tick_params`.
934
+ For documentation of keyword arguments, see `.Axes.tick_params`.
936
935
937
936
See Also
938
937
--------
@@ -976,6 +975,16 @@ def get_tick_params(self, which='major'):
976
975
"""
977
976
Get appearance parameters for ticks, ticklabels, and gridlines.
978
977
978
+ .. note::
979
+ This method only returns the values of the parameters *bottom*, *top*,
980
+ *labelbottom*, *labeltop* or *left*, *right*, *labelleft*, *labelright*,
981
+ respectively, and *girdOn* as well as all additional parameters that were
982
+ set with `.Axis.set_tick_params` or methods that use it internally, such
983
+ as `.Axes.tick_params`. The returned parameters may differ from the values
984
+ of the current elements if they have been set by any other means (e.g.
985
+ via set_* methods for individual tick objects, `.pyplot.xticks`/
986
+ `.pyplot.yticks` or `.rcParams`).
987
+
979
988
.. versionadded:: 3.7
980
989
981
990
Parameters
@@ -988,13 +997,6 @@ def get_tick_params(self, which='major'):
988
997
dict
989
998
Properties for styling tick elements added to the axis.
990
999
991
- Notes
992
- -----
993
- This method returns the appearance parameters for styling *new*
994
- elements added to this axis and may be different from the values
995
- on current elements if they were modified directly by the user
996
- (e.g., via ``set_*`` methods on individual tick objects).
997
-
998
1000
Examples
999
1001
--------
1000
1002
::
@@ -1019,15 +1021,10 @@ def get_tick_params(self, which='major'):
1019
1021
1020
1022
1021
1023
"""
1022
- _api .check_in_list (['major' , 'minor' ], which = which )
1023
- if which == 'major' :
1024
- return self ._translate_tick_params (
1025
- self ._major_tick_kw , reverse = True
1026
- )
1027
- return self ._translate_tick_params (self ._minor_tick_kw , reverse = True )
1024
+ raise NotImplementedError ('Derived must override' )
1028
1025
1029
1026
@staticmethod
1030
- def _translate_tick_params (kw , reverse = False ):
1027
+ def _translate_tick_params (kw , reverse = False , reverse_exclude = [] ):
1031
1028
"""
1032
1029
Translate the kwargs supported by `.Axis.set_tick_params` to kwargs
1033
1030
supported by `.Tick._apply_params`.
@@ -1036,11 +1033,22 @@ def _translate_tick_params(kw, reverse=False):
1036
1033
to the generic tick1, tick2 logic of the axis. Additionally, there
1037
1034
are some other name translations.
1038
1035
1039
- Returns a new dict of translated kwargs.
1036
+ Parameters
1037
+ ----------
1038
+ kw
1039
+ kwargs dict to translate.
1040
+ reverse
1041
+ whether to translate from set_tick_params kwargs to
1042
+ _apply_params kwargs or back.
1043
+ reverse_exclude
1044
+ list of keys to be removed from the keymap before reverse
1045
+ translating. This is necessary because there are multiple keys
1046
+ with the same value in keymap, depending on the axis.
1040
1047
1041
- Note: Use reverse=True to translate from those supported by
1042
- `.Tick._apply_params` back to those supported by
1043
- `.Axis.set_tick_params`.
1048
+ Returns
1049
+ -------
1050
+ dict
1051
+ new dict of translated kwargs
1044
1052
"""
1045
1053
kw_ = {** kw }
1046
1054
@@ -1069,6 +1077,8 @@ def _translate_tick_params(kw, reverse=False):
1069
1077
'labeltop' : 'label2On' ,
1070
1078
}
1071
1079
if reverse :
1080
+ for key in reverse_exclude :
1081
+ del keymap [key ]
1072
1082
kwtrans = {
1073
1083
oldkey : kw_ .pop (newkey )
1074
1084
for oldkey , newkey in keymap .items () if newkey in kw_
@@ -2518,6 +2528,14 @@ def get_tick_space(self):
2518
2528
else :
2519
2529
return 2 ** 31 - 1
2520
2530
2531
+ def get_tick_params (self , which = 'major' ):
2532
+ # docstring inherited
2533
+ _api .check_in_list (['major' , 'minor' ], which = which )
2534
+ return self ._translate_tick_params (
2535
+ getattr (self , f'_{ which } _tick_kw' ),
2536
+ reverse = True ,
2537
+ reverse_exclude = ['left' , 'right' , 'labelleft' , 'labelright' ],
2538
+ )
2521
2539
2522
2540
class YAxis (Axis ):
2523
2541
__name__ = 'yaxis'
@@ -2759,3 +2777,12 @@ def get_tick_space(self):
2759
2777
return int (np .floor (length / size ))
2760
2778
else :
2761
2779
return 2 ** 31 - 1
2780
+
2781
+ def get_tick_params (self , which = 'major' ):
2782
+ # docstring inherited
2783
+ _api .check_in_list (['major' , 'minor' ], which = which )
2784
+ return self ._translate_tick_params (
2785
+ getattr (self , f'_{ which } _tick_kw' ),
2786
+ reverse = True ,
2787
+ reverse_exclude = ['bottom' , 'top' , 'labelbottom' , 'labeltop' ],
2788
+ )
0 commit comments