Ejemplo n.º 1
0
def test_scale_manual():
    def is_manual_scale(name):
        return (name.startswith('scale_') and
                name.endswith('_manual'))

    manual_scales = [getattr(scale_manual, name)
                     for name in scale_manual.__dict__
                     if is_manual_scale(name)]

    values = [1, 2, 3, 4, 5]
    for _scale in manual_scales:
        s = _scale(values)
        assert s.palette(2) == values
        assert s.palette(len(values)) == values
        with pytest.warns(PlotnineWarning):
            s.palette(len(values)+1)

    values = {'A': 'red', 'B': 'violet', 'C': 'blue'}
    sc = scale_manual.scale_color_manual(values)
    assert sc.palette(3) == values

    # Breaks are matched with values
    sc1 = scale_manual.scale_color_manual(
        breaks=[True, False],
        values=['blue', 'red']
    )
    sc2 = scale_manual.scale_color_manual(
        breaks=[True, False],
        values=['red', 'blue']
    )
    assert sc1.map([True, False, True, False]) == ['blue', 'red'] * 2
    assert sc2.map([True, False, True, False]) == ['red', 'blue'] * 2
Ejemplo n.º 2
0
def test_missing_manual_dict_aesthetic():
    df = pd.DataFrame({
        'x': range(15),
        'y': range(15),
        'c': np.repeat(list('ABC'), 5)
    })

    values = {'A': 'red', 'B': 'violet', 'D': 'blue'}

    p = (ggplot(df, aes('x', 'y', color='c')) + geom_point(size=3) +
         scale_manual.scale_color_manual(values))
    assert p + _theme == 'missing_manual_dict_aesthetic'
Ejemplo n.º 3
0
def test_scale_manual():
    def is_manual_scale(name):
        return (name.startswith('scale_') and name.endswith('_manual'))

    manual_scales = [
        getattr(scale_manual, name) for name in scale_manual.__dict__
        if is_manual_scale(name)
    ]

    values = [1, 2, 3, 4, 5]
    for _scale in manual_scales:
        s = _scale(values)
        assert s.palette(2) == values
        assert s.palette(len(values)) == values
        with pytest.warns(PlotnineWarning):
            s.palette(len(values) + 1)

    values = {'A': 'red', 'B': 'violet', 'C': 'blue'}
    sc = scale_manual.scale_color_manual(values)
    assert sc.palette(3) == values