@@ -842,10 +842,14 @@ def _process_linewidths(self):
842842 if linewidths is None :
843843 tlinewidths = [(mpl .rcParams ['lines.linewidth' ],)] * Nlev
844844 else :
845- if cbook .iterable (linewidths ) and len (linewidths ) < Nlev :
846- linewidths = list (linewidths ) * int (np .ceil (Nlev / len (linewidths )))
847- elif not cbook .iterable (linewidths ) and type (linewidths ) in [int , float ]:
845+ if not cbook .iterable (linewidths ):
848846 linewidths = [linewidths ] * Nlev
847+ else :
848+ linewidths = list (linewidths )
849+ if len (linewidths ) < Nlev :
850+ linewidths = linewidths * int (np .ceil (Nlev / len (linewidths )))
851+ if len (linewidths ) > Nlev :
852+ linewidths = linewidths [:Nlev ]
849853 tlinewidths = [(w ,) for w in linewidths ]
850854 return tlinewidths
851855
@@ -862,10 +866,15 @@ def _process_linestyles(self):
862866 else :
863867 if cbook .is_string_like (linestyles ):
864868 tlinestyles = [linestyles ] * Nlev
865- elif cbook .iterable (linestyles ) and len (linestyles ) < Nlev :
866- tlinestyles = list (linestyles ) * int (np .ceil (Nlev / len (linestyles )))
867- elif cbook .iterable (linestyles ): # len(linestyles) >= Nlev
868- tlinestyles = list (linestyles )[:Nlev ]
869+ elif cbook .iterable (linestyles ):
870+ tlinestyles = list (linestyles )
871+ if len (tlinestyles ) < Nlev :
872+ nreps = int (np .ceil (Nlev / len (linestyles )))
873+ tlinestyles = tlinestyles * nreps
874+ if len (tlinestyles ) > Nlev :
875+ tlinestyles = tlinestyles [:Nlev ]
876+ else :
877+ raise ValueError ("Unrecognized type for linestyles kwarg" )
869878 return tlinestyles
870879
871880 def get_alpha (self ):
0 commit comments