diff --git a/seaborn/palettes.py b/seaborn/palettes.py index 5aa18cbdc7..62b98a8097 100644 --- a/seaborn/palettes.py +++ b/seaborn/palettes.py @@ -382,7 +382,7 @@ def husl_palette(n_colors=6, h=.01, s=.9, l=.65): # noqa hues *= 359 s *= 99 l *= 99 # noqa - palette = [husl.husl_to_rgb(h_i, s, l) for h_i in hues] + palette = [_color_to_rgb((h_i, s, l), input='husl') for h_i in hues] return _ColorPalette(palette) @@ -469,8 +469,10 @@ def _color_to_rgb(color, input): color = colorsys.hls_to_rgb(*color) elif input == "husl": color = husl.husl_to_rgb(*color) + color = tuple(np.clip(color, 0, 1)) elif input == "xkcd": color = xkcd_rgb[color] + return color diff --git a/seaborn/tests/test_palettes.py b/seaborn/tests/test_palettes.py index 6ddebcc05f..c583aee649 100644 --- a/seaborn/tests/test_palettes.py +++ b/seaborn/tests/test_palettes.py @@ -194,8 +194,14 @@ def test_rgb_from_husl(self): color = 120, 50, 40 rgb_got = palettes._color_to_rgb(color, "husl") - rgb_want = husl.husl_to_rgb(*color) - nt.assert_equal(rgb_got, rgb_want) + rgb_want = tuple(husl.husl_to_rgb(*color)) + assert rgb_got == rgb_want + + for h in range(0, 360): + color = h, 100, 100 + rgb = palettes._color_to_rgb(color, "husl") + assert min(rgb) >= 0 + assert max(rgb) <= 1 def test_rgb_from_xkcd(self):