File tree Expand file tree Collapse file tree 2 files changed +16
-7
lines changed Expand file tree Collapse file tree 2 files changed +16
-7
lines changed Original file line number Diff line number Diff line change @@ -1524,6 +1524,9 @@ def _replacer(data, key):
1524
1524
following arguments are replaced by **data[<arg>]**:
1525
1525
1526
1526
{replaced}
1527
+
1528
+ Objects passed as **data** must support item access (``data[<arg>]``) and
1529
+ membership test (``<arg> in data``).
1527
1530
"""
1528
1531
1529
1532
Original file line number Diff line number Diff line change 44
44
rcParams = matplotlib .rcParams
45
45
46
46
47
+ def _has_item (data , name ):
48
+ """Return whether *data* can be item-accessed with *name*.
49
+
50
+ This supports data with a dict-like interface (`in` checks item
51
+ availability) and with numpy.arrays.
52
+ """
53
+ try :
54
+ return data .dtype .names is not None and name in data .dtype .names
55
+ except AttributeError : # not a numpy array
56
+ return name in data
57
+
58
+
47
59
def _plot_args_replacer (args , data ):
48
60
if len (args ) == 1 :
49
61
return ["y" ]
50
62
elif len (args ) == 2 :
51
63
# this can be two cases: x,y or y,c
52
- if (not args [1 ] in data and
53
- not (hasattr (data , 'dtype' ) and
54
- hasattr (data .dtype , 'names' ) and
55
- data .dtype .names is not None and
56
- args [1 ] in data .dtype .names )):
57
- # this is not in data, so just assume that it is something which
58
- # will not get replaced (color spec or array like).
64
+ if not _has_item (data , args [1 ]):
59
65
return ["y" , "c" ]
60
66
# it's data, but could be a color code like 'ro' or 'b--'
61
67
# -> warn the user in that case...
You can’t perform that action at this time.
0 commit comments