Skip to content

Commit aeda340

Browse files
committed
FIX: broadcasting bug in collection ls/lw
1 parent edd7cd6 commit aeda340

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

lib/matplotlib/collections.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ def __init__(self,
124124
cm.ScalarMappable.__init__(self, norm, cmap)
125125
self._us_linestyles = [(None, None)]
126126
self._linestyles = [(None, None)]
127+
self._us_lw = [0]
127128
self._linewidths = [0]
128129
self.set_edgecolor(edgecolors)
129130
self.set_facecolor(facecolors)
@@ -496,10 +497,10 @@ def set_linewidth(self, lw):
496497
lw = mpl.rcParams['lines.linewidth']
497498
else:
498499
lw = 0
499-
lw = self._get_value(lw)
500+
self._us_lw = self._get_value(lw)
500501

501502
self._linewidths, self._linestyles = self._bcast_lwls(
502-
self._get_value(lw), self._us_linestyles)
503+
self._us_lw, self._us_linestyles)
503504
self.stale = True
504505

505506
def set_linewidths(self, lw):
@@ -555,8 +556,9 @@ def set_linestyle(self, ls):
555556
'Do not know how to convert {!r} to dashes'.format(ls))
556557

557558
self._us_linestyles = dashes
559+
self._linewidths
558560
self._linewidths, self._linestyles = self._bcast_lwls(
559-
self._linewidths, self._us_linestyles)
561+
self._us_lw, self._us_linestyles)
560562

561563
@staticmethod
562564
def _bcast_lwls(linewidths, dashes):

lib/matplotlib/tests/test_collections.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,20 @@ def test_pandas_indexing():
640640
Collection(antialiaseds=aa)
641641

642642

643+
@cleanup(style='default')
644+
def test_lslw_bcast():
645+
col = mcollections.PathCollection([])
646+
col.set_linestyles(['-', '-'])
647+
col.set_linewidths([1, 2, 3])
648+
649+
assert col.get_linestyles() == [(None, None)] * 6
650+
assert col.get_linewidths() == [1, 2, 3] * 2
651+
652+
col.set_linestyles(['-', '-', '-'])
653+
assert col.get_linestyles() == [(None, None)] * 3
654+
assert col.get_linewidths() == [1, 2, 3]
655+
656+
643657
if __name__ == '__main__':
644658
import nose
645659
nose.runmodule(argv=['-s', '--with-doctest'], exit=False)

0 commit comments

Comments
 (0)