Esempio n. 1
0
class TestWedge(unittest.TestCase):
    def setUp(self):
        from bokeh.glyphs import Wedge
        self.test_wedge = Wedge()

    def test_expected_properties(self):
        expected_properties = set(['x','y','radius','start_angle','end_angle','direction'])
        actual_properties = get_prop_set(type(self.test_wedge))
        self.assertTrue(expected_properties.issubset(actual_properties))

    def test_expected_values(self):
        self.assertEqual(self.test_wedge.x,'x')
        self.assertEqual(self.test_wedge.y,'y')
        self.assertEqual(self.test_wedge.radius,None)
        self.assertEqual(self.test_wedge.start_angle,'start_angle')
        self.assertEqual(self.test_wedge.end_angle,'end_angle')
        self.assertEqual(self.test_wedge.__view_model__,'wedge')

        self.assertEqual(self.test_wedge.direction,'clock')
        self.test_wedge.direction = 'anticlock'

    def test_to_glyphspec(self):
        self.assertEqual(self.test_wedge.to_glyphspec(), {'line_color': {'value': 'black'}, 'fill_color': {'value': 'gray'}, 'start_angle': {'units': 'data', 'field': 'start_angle'}, 'end_angle': {'units': 'data', 'field': 'end_angle'}, 'radius': {'units': 'data', 'field': None}, 'y': {'units': 'data', 'field': 'y'}, 'x': {'units': 'data', 'field': 'x'}, 'type': 'wedge'})
        self.test_wedge.x = 50
        self.test_wedge.y = 51
        self.test_wedge.radius = 52
        self.test_wedge.start_angle = 53
        self.test_wedge.end_angle = 54
        self.test_wedge.direction = 'anticlock'
        self.assertEqual(self.test_wedge.to_glyphspec(), {'line_color': {'value': 'black'}, 'direction': 'anticlock', 'fill_color': {'value': 'gray'}, 'start_angle': {'units': 'data', 'value': 53}, 'end_angle': {'units': 'data', 'value': 54}, 'radius': {'units': 'data', 'value': 52}, 'y': {'units': 'data', 'value': 51}, 'x': {'units': 'data', 'value': 50}, 'type': 'wedge'})
Esempio n. 2
0
class TestWedge(unittest.TestCase):
    def setUp(self):
        from bokeh.glyphs import Wedge

        self.test_wedge = Wedge()

    def test_expected_properties(self):
        expected_properties = set(["x", "y", "radius", "start_angle", "end_angle", "direction"])
        actual_properties = get_prop_set(type(self.test_wedge))
        self.assertTrue(expected_properties.issubset(actual_properties))

    def test_expected_values(self):
        self.assertEqual(self.test_wedge.x, "x")
        self.assertEqual(self.test_wedge.y, "y")
        self.assertEqual(self.test_wedge.radius, None)
        self.assertEqual(self.test_wedge.start_angle, "start_angle")
        self.assertEqual(self.test_wedge.end_angle, "end_angle")
        self.assertEqual(self.test_wedge.__view_model__, "wedge")

        self.assertEqual(self.test_wedge.direction, "clock")
        self.test_wedge.direction = "anticlock"

    def test_to_glyphspec(self):
        expected = dict(GENERIC_GLYPH_DICT)
        expected["type"] = "wedge"
        expected.update(
            {
                "start_angle": {"units": "data", "field": "start_angle"},
                "end_angle": {"units": "data", "field": "end_angle"},
                "radius": {"units": "data", "field": None},
            }
        )
        self.assertEqual(self.test_wedge.to_glyphspec(), expected)
        self.test_wedge.x = 50
        self.test_wedge.y = 51
        self.test_wedge.radius = 52
        self.test_wedge.start_angle = 53
        self.test_wedge.end_angle = 54
        self.test_wedge.direction = "anticlock"
        expected.update(
            {
                "x": {"units": "data", "value": 50},
                "y": {"units": "data", "value": 51},
                "start_angle": {"units": "data", "value": 53},
                "end_angle": {"units": "data", "value": 54},
                "radius": {"units": "data", "value": 52},
                "direction": "anticlock",
            }
        )
        self.assertEqual(self.test_wedge.to_glyphspec(), expected)
Esempio n. 3
0
class TestWedge(unittest.TestCase):

    def setUp(self):
        from bokeh.glyphs import Wedge
        self.test_wedge = Wedge()

    def test_expected_properties(self):
        expected_properties = set(['x', 'y', 'radius', 'start_angle', 'end_angle', 'direction'])
        actual_properties = get_prop_set(type(self.test_wedge))
        self.assertTrue(expected_properties.issubset(actual_properties))

    def test_expected_values(self):
        self.assertEqual(self.test_wedge.x, 'x')
        self.assertEqual(self.test_wedge.y, 'y')
        self.assertEqual(self.test_wedge.radius, None)
        self.assertEqual(self.test_wedge.start_angle, 'start_angle')
        self.assertEqual(self.test_wedge.end_angle, 'end_angle')
        self.assertEqual(self.test_wedge.__view_model__, 'wedge')

        self.assertEqual(self.test_wedge.direction, 'clock')
        self.test_wedge.direction = 'anticlock'

    def test_to_glyphspec(self):
        expected = dict(GENERIC_GLYPH_DICT)
        expected['type'] = 'wedge'
        expected.update({
            'start_angle':  {'units': 'data', 'field': 'start_angle'},
            'end_angle':    {'units': 'data', 'field': 'end_angle'},
            'radius':       {},
        })
        self.assertEqual(self.test_wedge.to_glyphspec(), expected)
        self.test_wedge.x = 50
        self.test_wedge.y = 51
        self.test_wedge.radius = 52
        self.test_wedge.start_angle = 53
        self.test_wedge.end_angle = 54
        self.test_wedge.direction = 'anticlock'
        expected.update({
            'x':            {'units': 'data', 'value': 50},
            'y':            {'units': 'data', 'value': 51},
            'start_angle':  {'units': 'data', 'value': 53},
            'end_angle':    {'units': 'data', 'value': 54},
            'radius':       {'units': 'data', 'value': 52},
            'direction':    'anticlock',
        })
        self.assertEqual(self.test_wedge.to_glyphspec(), expected)
Esempio n. 4
0
def test_Wedge():
    glyph = Wedge()
    assert glyph.x == "x"
    assert glyph.y == "y"
    assert glyph.radius == None
    assert glyph.start_angle == "start_angle"
    assert glyph.end_angle == "end_angle"
    assert glyph.direction == "clock"
    yield check_fill, glyph
    yield check_line, glyph
    yield check_props, glyph, [
        "x", "y", "radius", "start_angle", "end_angle", "direction"
    ], FILL, LINE
Esempio n. 5
0
 def setUp(self):
     from bokeh.glyphs import Wedge
     self.test_wedge = Wedge()
Esempio n. 6
0
          y="y",
          width=screen(10),
          height=screen(20),
          angle=-0.7,
          fill_color="#CAB2D6")),
    ("segment",
     Segment(x0="x",
             y0="y",
             x1="xm01",
             y1="ym01",
             line_color="#F4A582",
             line_width=3)),
    ("wedge",
     Wedge(x="x",
           y="y",
           radius=screen(15),
           start_angle=0.6,
           end_angle=4.1,
           fill_color="#B3DE69")),
]

markers = [
    ("circle",
     Circle(x="x",
            y="y",
            radius=0.1,
            radius_units="data",
            fill_color="#3288BD")),
    ("circle_x",
     CircleX(x="x", y="y", size="sizes", line_color="#DD1C77",
             fill_color=None)),
    ("circle_cross",
Esempio n. 7
0
 def setUp(self):
     from bokeh.glyphs import Wedge
     self.test_wedge = Wedge()
Esempio n. 8
0
class TestWedge(unittest.TestCase):
    def setUp(self):
        from bokeh.glyphs import Wedge
        self.test_wedge = Wedge()

    def test_expected_properties(self):
        expected_properties = set(
            ['x', 'y', 'radius', 'start_angle', 'end_angle', 'direction'])
        actual_properties = get_prop_set(type(self.test_wedge))
        self.assertTrue(expected_properties.issubset(actual_properties))

    def test_expected_values(self):
        self.assertEqual(self.test_wedge.x, 'x')
        self.assertEqual(self.test_wedge.y, 'y')
        self.assertEqual(self.test_wedge.radius, None)
        self.assertEqual(self.test_wedge.start_angle, 'start_angle')
        self.assertEqual(self.test_wedge.end_angle, 'end_angle')
        self.assertEqual(self.test_wedge.__view_model__, 'wedge')

        self.assertEqual(self.test_wedge.direction, 'clock')
        self.test_wedge.direction = 'anticlock'

    def test_to_glyphspec(self):
        expected = dict(GENERIC_GLYPH_DICT)
        expected['type'] = 'wedge'
        expected.update({
            'start_angle': {
                'units': 'data',
                'field': 'start_angle'
            },
            'end_angle': {
                'units': 'data',
                'field': 'end_angle'
            },
            'radius': {
                'units': 'data',
                'field': None
            },
        })
        self.assertEqual(self.test_wedge.to_glyphspec(), expected)
        self.test_wedge.x = 50
        self.test_wedge.y = 51
        self.test_wedge.radius = 52
        self.test_wedge.start_angle = 53
        self.test_wedge.end_angle = 54
        self.test_wedge.direction = 'anticlock'
        expected.update({
            'x': {
                'units': 'data',
                'value': 50
            },
            'y': {
                'units': 'data',
                'value': 51
            },
            'start_angle': {
                'units': 'data',
                'value': 53
            },
            'end_angle': {
                'units': 'data',
                'value': 54
            },
            'radius': {
                'units': 'data',
                'value': 52
            },
            'direction': 'anticlock',
        })
        self.assertEqual(self.test_wedge.to_glyphspec(), expected)
Esempio n. 9
0
angles = selected.Share.map(radians).cumsum()

end_angles = angles.tolist()
start_angles = [0] + end_angles[:-1]

browsers_source = ColumnDataSource(
    dict(
        start=start_angles,
        end=end_angles,
        colors=[colors[browser] for browser in browsers],
    ))

glyph = Wedge(x=0,
              y=0,
              radius=1,
              line_color="white",
              line_width=2,
              start_angle="start",
              end_angle="end",
              fill_color="colors")
plot.add_glyph(browsers_source, glyph)


def polar_to_cartesian(r, start_angles, end_angles):
    cartesian = lambda r, alpha: (r * cos(alpha), r * sin(alpha))
    points = []

    for start, end in zip(start_angles, end_angles):
        points.append(cartesian(r, (end + start) / 2))

    return zip(*points)