Skip to content

Commit 009d952

Browse files
committed
Cairo backend: Fix incorrect linestyle in draw_path_collection
1 parent 325e698 commit 009d952

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

lib/matplotlib/backends/backend_cairo.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -306,10 +306,13 @@ def _draw_paths():
306306
for k, v in gc_vars.items():
307307
if k == "_linestyle": # Deprecated, no effect.
308308
continue
309-
try:
310-
getattr(gc, "set" + k)(v)
311-
except (AttributeError, TypeError) as e:
312-
pass
309+
elif k == "_dashes":
310+
gc.set_dashes(*v) # Needs to be unpacked.
311+
else:
312+
try:
313+
getattr(gc, "set" + k)(v)
314+
except (AttributeError, TypeError) as e:
315+
pass
313316
vars(gc).update(gc_vars)
314317
gc.ctx.new_path()
315318
paths, transforms = zip(*grouped_draw)
@@ -326,7 +329,8 @@ def _draw_paths():
326329
transform = (Affine2D(transform.get_matrix())
327330
.translate(xo, yo - self.height).scale(1, -1))
328331
# rgb_fc could be a ndarray, for which equality is elementwise.
329-
new_key = vars(gc0), tuple(rgb_fc) if rgb_fc is not None else None
332+
new_key = (vars(gc0).copy(), tuple(rgb_fc) if rgb_fc is not None
333+
else None)
330334
# don't do grouped draw when doing alpha blending
331335
alpha_blending = gc0.get_forced_alpha() and gc0.get_alpha() < 1.0
332336
if not alpha_blending and rgb_fc is not None:

0 commit comments

Comments
 (0)