Example #1
0
    def test_styles(self):
        renderer = BarChart(7, 17, [fn(10), fn(5)])
        renderer.border_style = SINGLE_LINE
        self.assertEqual(
            str(renderer), "┌───────────────┐\n"
            "│               │\n"
            "│  │##########  │\n"
            "│  │            │\n"
            "│  │#####       │\n"
            "│               │\n"
            "└───────────────┘")

        renderer.border_style = ASCII_LINE
        renderer.axes_style = ASCII_LINE
        self.assertEqual(
            str(renderer), "+---------------+\n"
            "|               |\n"
            "|  |##########  |\n"
            "|  |            |\n"
            "|  |#####       |\n"
            "|               |\n"
            "+---------------+")
Example #2
0
def demo(screen):
    scenes = []
    if screen.width != 132 or screen.height != 24:
        effects = [
            Print(screen,
                  FigletText("Resize to 132x24"),
                  y=screen.height // 2 - 3),
        ]
    else:
        # Horizontal Charts
        hchart1 = BarChart(
            9,
            22,
            [fn, fn],
            char="═",
            gradient=[(7, Screen.COLOUR_GREEN), (9, Screen.COLOUR_YELLOW),
                      (10, Screen.COLOUR_RED)],
            keys=["one", "two"],
            gap=1,
        )
        hchart2 = BarChart(
            10,
            25, [wv(1), wv(3), wv(5), wv(7), wv(9)],
            colour=Screen.COLOUR_GREEN,
            axes=BarChart.BOTH,
            scale=2.0)
        hchart2.border_style = ASCII_LINE
        hchart2.axes_style = ASCII_LINE
        hchart3 = BarChart(
            10,
            40, [wv(1), wv(2),
                 wv(3), wv(4),
                 wv(5), wv(7),
                 wv(8), wv(9)],
            colour=[c for c in range(1, 8)],
            bg=[c for c in range(1, 8)],
            scale=2.0,
            axes=BarChart.X_AXIS,
            intervals=0.5,
            labels=True,
            border=False)
        hchart4 = BarChart(7,
                           30, [lambda: time.time() * 10 % 101],
                           gradient=[
                               (33, Screen.COLOUR_RED, Screen.COLOUR_RED),
                               (66, Screen.COLOUR_YELLOW,
                                Screen.COLOUR_YELLOW),
                               (100, Screen.COLOUR_WHITE, Screen.COLOUR_WHITE),
                           ] if screen.colours < 256 else [(10, 234, 234),
                                                           (20, 236, 236),
                                                           (30, 238, 238),
                                                           (40, 240, 240),
                                                           (50, 242, 242),
                                                           (60, 244, 244),
                                                           (70, 246, 246),
                                                           (80, 248, 248),
                                                           (90, 250, 250),
                                                           (100, 252, 252)],
                           char=">",
                           scale=100.0,
                           labels=True,
                           axes=BarChart.X_AXIS)
        hchart4.border_style = SINGLE_LINE

        # Vertical Charts
        vchart1 = VBarChart(
            12,
            21,
            [fn2, fn2],
            char="═",
            gradient=[(3, Screen.COLOUR_GREEN), (4, Screen.COLOUR_YELLOW),
                      (5, Screen.COLOUR_RED)],
            keys=["one", "two"],
        )
        vchart2 = VBarChart(
            12,
            17, [wv(1), wv(3), wv(5), wv(7), wv(9)],
            colour=Screen.COLOUR_GREEN,
            axes=BarChart.BOTH,
            scale=2.0,
            gap=0)
        vchart2.border_style = ASCII_LINE
        vchart2.axes_style = ASCII_LINE
        vchart3 = VBarChart(
            12,
            39, [wv(1), wv(2),
                 wv(3), wv(4),
                 wv(5), wv(7),
                 wv(8), wv(9)],
            colour=[c for c in range(1, 8)],
            bg=[c for c in range(1, 8)],
            gap=0,
            scale=2.0,
            axes=BarChart.Y_AXIS,
            intervals=0.5,
            labels=True,
            border=False)
        vchart4 = VBarChart(12,
                            16, [lambda: time.time() * 10 % 101],
                            gradient=[
                                (33, Screen.COLOUR_RED, Screen.COLOUR_RED),
                                (66, Screen.COLOUR_YELLOW,
                                 Screen.COLOUR_YELLOW),
                                (100, Screen.COLOUR_WHITE,
                                 Screen.COLOUR_WHITE),
                            ] if screen.colours < 256 else [(10, 234, 234),
                                                            (20, 236, 236),
                                                            (30, 238, 238),
                                                            (40, 240, 240),
                                                            (50, 242, 242),
                                                            (60, 244, 244),
                                                            (70, 246, 246),
                                                            (80, 248, 248),
                                                            (90, 250, 250),
                                                            (100, 252, 252)],
                            char=">",
                            scale=100.0,
                            labels=True,
                            axes=VBarChart.Y_AXIS)
        vchart4.border_style = SINGLE_LINE

        effects = [
            Print(screen, hchart1, x=1, y=1, transparent=False, speed=2),
            Print(screen, hchart2, x=25, y=1, transparent=False, speed=2),
            Print(screen, hchart3, x=52, y=1, transparent=False, speed=2),
            Print(screen, hchart4, x=96, y=2, transparent=False, speed=2),
            Print(screen, vchart1, x=2, y=12, transparent=False, speed=2),
            Print(screen, vchart2, x=29, y=12, transparent=False, speed=2),
            Print(screen, vchart3, x=52, y=12, transparent=False, speed=2),
            Print(screen, vchart4, x=103, y=12, transparent=False, speed=2),
        ]

    scenes.append(Scene(effects, -1))
    screen.play(scenes, stop_on_resize=True)