@@ -168,10 +168,15 @@ def style_generator(color_keys="bgrcmykG"):
168
168
yield color + linestyle
169
169
170
170
171
- def update_style_attr (style , param ):
172
- """Parse a MATLAB-like style string and
173
- update the color, linestyle, marker attributes of the param
174
- object
171
+ def update_style_attr (style : str , param ) -> None :
172
+ """Parse a MATLAB-like style string.
173
+
174
+ Example: 'r--o' for red dashed line with circle markers
175
+
176
+ Also accepts HTML colors like '#ff0000'.
177
+
178
+ Args:
179
+ style: style string
175
180
"""
176
181
for marker in list (MARKERS .keys ()):
177
182
if marker in style :
@@ -185,12 +190,18 @@ def update_style_attr(style, param):
185
190
break
186
191
else :
187
192
param .line .style = "NoPen"
188
- for color in list (COLORS .keys ()):
189
- if color in style :
190
- param .line .color = COLORS [color ]
191
- param .symbol .facecolor = COLORS [color ]
192
- param .symbol .edgecolor = COLORS [color ]
193
+ color = "black"
194
+ for style_str in style :
195
+ if style_str .startswith ("#" ): # HTML color
196
+ color = style_str [:7 ]
197
+ break
198
+ for color_letter in list (COLORS .keys ()):
199
+ if color_letter in style :
200
+ color = COLORS [color_letter ]
193
201
break
202
+ param .line .color = color
203
+ param .symbol .facecolor = color
204
+ param .symbol .edgecolor = color
194
205
195
206
196
207
class ItemParameters :
0 commit comments