@@ -1147,6 +1147,19 @@ def set_marker(self, marker):
1147
1147
self ._marker = MarkerStyle (marker , self ._marker .get_fillstyle ())
1148
1148
self .stale = True
1149
1149
1150
+ def _set_markercolor (self , attr , val ):
1151
+ if val is None :
1152
+ val = 'auto'
1153
+ current = getattr (self , attr )
1154
+ if current is None :
1155
+ self .stale = True
1156
+ else :
1157
+ neq = current != val
1158
+ # Much faster than `np.any(current != val)` if no arrays are used.
1159
+ if neq .any () if isinstance (neq , np .ndarray ) else neq :
1160
+ self .stale = True
1161
+ setattr (self , attr , val )
1162
+
1150
1163
def set_markeredgecolor (self , ec ):
1151
1164
"""
1152
1165
Set the marker edge color.
@@ -1155,55 +1168,42 @@ def set_markeredgecolor(self, ec):
1155
1168
----------
1156
1169
ec : color
1157
1170
"""
1158
- if ec is None :
1159
- ec = 'auto'
1160
- if (self ._markeredgecolor is None
1161
- or np .any (self ._markeredgecolor != ec )):
1162
- self .stale = True
1163
- self ._markeredgecolor = ec
1171
+ self ._set_markercolor ("_markeredgecolor" , ec )
1164
1172
1165
- def set_markeredgewidth (self , ew ):
1173
+ def set_markerfacecolor (self , fc ):
1166
1174
"""
1167
- Set the marker edge width in points .
1175
+ Set the marker face color .
1168
1176
1169
1177
Parameters
1170
1178
----------
1171
- ew : float
1172
- Marker edge width, in points.
1179
+ fc : color
1173
1180
"""
1174
- if ew is None :
1175
- ew = rcParams ['lines.markeredgewidth' ]
1176
- if self ._markeredgewidth != ew :
1177
- self .stale = True
1178
- self ._markeredgewidth = ew
1181
+ self ._set_markercolor ("_markerfacecolor" , fc )
1179
1182
1180
- def set_markerfacecolor (self , fc ):
1183
+ def set_markerfacecoloralt (self , fc ):
1181
1184
"""
1182
- Set the marker face color.
1185
+ Set the alternate marker face color.
1183
1186
1184
1187
Parameters
1185
1188
----------
1186
1189
fc : color
1187
1190
"""
1188
- if fc is None :
1189
- fc = 'auto'
1190
- if np .any (self ._markerfacecolor != fc ):
1191
- self .stale = True
1192
- self ._markerfacecolor = fc
1191
+ self ._set_markercolor ("_markerfacecoloralt" , fc )
1193
1192
1194
- def set_markerfacecoloralt (self , fc ):
1193
+ def set_markeredgewidth (self , ew ):
1195
1194
"""
1196
- Set the alternate marker face color .
1195
+ Set the marker edge width in points .
1197
1196
1198
1197
Parameters
1199
1198
----------
1200
- fc : color
1199
+ ew : float
1200
+ Marker edge width, in points.
1201
1201
"""
1202
- if fc is None :
1203
- fc = 'auto'
1204
- if np . any ( self ._markerfacecoloralt != fc ) :
1202
+ if ew is None :
1203
+ ew = rcParams [ 'lines.markeredgewidth' ]
1204
+ if self ._markeredgewidth != ew :
1205
1205
self .stale = True
1206
- self ._markerfacecoloralt = fc
1206
+ self ._markeredgewidth = ew
1207
1207
1208
1208
def set_markersize (self , sz ):
1209
1209
"""
0 commit comments