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