Example #1
0
def y_axis_tics(x_axis, y_axis, side):
    if side == "left":
        x1 = scale(x_axis["min"], x_axis) - 4
        x2 = scale(x_axis["min"], x_axis)
    else:
        x1 = scale(x_axis["max"], x_axis)
        x2 = scale(x_axis["max"], x_axis) + 2

    tics = [
        Line(scale(x_axis["min"], x_axis),
             scale(y_axis["min"], y_axis),
             scale(x_axis["max"], x_axis),
             scale(y_axis["min"], y_axis),
             strokeWidth=0.5)
    ]

    for tic in y_axis["tics"]:
        tics.append(
            Line(x1,
                 scale(tic, y_axis),
                 x2,
                 scale(tic, y_axis),
                 strokeWidth=0.5))

    return tics
Example #2
0
def title(txt, x_axis, y_axis):
    return [
        String(scale(x_axis["min"], x_axis),
               scale(y_axis["max"], y_axis) + 3,
               txt,
               fontSize=12,
               fontName="Helvetica")
    ]
Example #3
0
def right_axis_line(x_axis, y_axis):
    return [
        Line(scale(x_axis["max"], x_axis),
             scale(y_axis["min"], y_axis),
             scale(x_axis["max"], x_axis),
             scale(y_axis["max"], y_axis),
             strokeWidth=0.5)
    ]
Example #4
0
def add_star_to_13(x_axis, y_axis):
    return [
        String(scale(13, x_axis) - 7,
               scale(y_axis["min"], y_axis) - 14,
               "*",
               fontSize=14,
               fontName="Helvetica")
    ]
Example #5
0
def x_axis_title(x_axis, y_axis):
    x = ((x_axis["max"] - x_axis["min"]) / 2) + x_axis["min"]
    return [
        String(scale(x, x_axis) - (len(x_axis["title"]) * 6),
               scale(y_axis["min"], y_axis) - 22,
               x_axis["title"],
               fontSize=11,
               fontName="Helvetica")
    ]
Example #6
0
def x_axis_text(x_axis, y_axis):
    txt = []
    for tic in x_axis["tics"]:
        txt.append(
            String(scale(tic, x_axis) - 2,
                   scale(y_axis["min"], y_axis) - 10,
                   "%s" % tic,
                   fontSize=8,
                   fontName="Helvetica"))

    return txt
def circles(sample_data, x_axis, y_axis):
    spots = []
    for idx, sample in enumerate(sample_data):
        colour = color_arr[idx % len(color_arr)]
        for x_idx, value in enumerate(sample_data[sample]):
            circle = pdf.circle(scale(value[0], x_axis),
                                scale(value[1], y_axis),
                                2,
                                fill_color=colour,
                                border_color=colour)
            spots.append(circle)
    return spots
Example #8
0
def get_bar(x_val, y_val, x_axis, y_axis, color):
    width = scale(2, x_axis) - scale(1.6, x_axis)
    y = scale(y_val, y_axis)
    height = scale(y_axis["min"], y_axis) - y
    x = scale(x_val, x_axis)
    return pdf.rect(x,
                    y,
                    width,
                    height,
                    border_color=color,
                    fill_color=color,
                    opacity=0.6)
Example #9
0
def y_axis_lines(x_axis, y_axis):
    lines = []
    for tic in y_axis["tics"]:
        y = y_scale(tic, y_axis)
        lines.append(
            line(scale(x_axis["min"], x_axis),
                 y,
                 scale(x_axis["max"], x_axis),
                 y,
                 opacity=0.5,
                 dashes=3))

    return lines
Example #10
0
def x_axis_tics(x_axis, y_axis):
    tics = [
        line(scale(x_axis["min"], x_axis), y_scale(y_axis["min"], y_axis),
             scale(x_axis["min"], x_axis), y_scale(y_axis["max"], y_axis))
    ]

    for tic in x_axis["tics"]:
        tics.append(
            line(scale(tic, x_axis), y_scale(y_axis["min"], y_axis),
                 scale(tic, x_axis),
                 y_scale(y_axis["min"], y_axis) + 6))

    return tics
Example #11
0
def y_axis_text(x_axis, y_axis, side):
    if side == "left":
        x = scale(x_axis["min"], x_axis) - 8
    else:
        x = scale(x_axis["max"], x_axis) + 6
    txt = []
    for tic in y_axis["tics"]:
        z = zeroes(tic)
        r = x
        if side == "left":
            r = x - (z * 8)
        txt.append(text(r, y_scale(tic, y_axis) + 3, "%s" % tic))

    return txt
def histogram_lines(pop_data, x_axis, y_axis):
    histo_lines = []
    for cn in pop_data:
        y = scale(pop_data[cn], y_axis)
        x = scale(cn, x_axis)
        histo_lines.append(
            Line(x,
                 y,
                 x,
                 scale(0, y_axis),
                 strokeColor=colors["grey"],
                 strokeOpacity=0.3,
                 strokeWidth=0.5))
    return histo_lines
def sample_lines(sample_data, x_axis, y_axis):
    lines = []
    samples = iter(sample_data)
    for idx, key in enumerate(samples):
        x = scale(sample_data[key], x_axis)
        lines.append(
            Line(x,
                 scale(0, y_axis),
                 x,
                 scale(y_axis["max"], y_axis),
                 strokeColor=color_arr[idx % len(color_arr)],
                 strokeOpacity=1.0))

    return lines
Example #14
0
def y_axis_lines(x_axis, y_axis):
    lines = []
    for tic in y_axis["tics"]:
        y = scale(tic, y_axis)
        lines.append(
            Line(scale(x_axis["min"], x_axis),
                 y,
                 scale(x_axis["max"], x_axis),
                 y,
                 strokeOpacity=0.4,
                 strokeDashArray=[2, 2],
                 strokeWidth=0.5))

    return lines
Example #15
0
def get_keys(key_items, x_axis, y_axis, element_type="line"):
    keys = []
    x = scale(x_axis["max"], x_axis) + 30
    y = scale(y_axis["max"], y_axis)
    for idx, key in enumerate(key_items):
        color = color_arr[idx % len(color_arr)]
        y_val = y - (15 * (idx + 1))
        keys.append(get_key_symbol(x, y_val, element_type, color))
        keys.append(
            String(x + 14,
                   y_val,
                   key.split('_')[0],
                   fontName="Helvetica",
                   fontSize=8))

    return keys
Example #16
0
def y_axis_title(x_axis, y_axis, side):
    if side == "left":
        x = scale(y_axis["min"], y_axis)
        y = -(scale(x_axis["min"], x_axis)) + 20
        tf = rotate(90)
    else:
        x = -(scale(y_axis["max"], y_axis))
        y = scale(x_axis["max"], x_axis) + 20
        tf = rotate(270)
    return [
        String(x,
               y,
               y_axis["title"],
               transform=tf,
               fontSize=11,
               fontName="Helvetica")
    ]
def sample_paths(sample_data, x_axis, y_axis):
    paths = []
    for idx, sample in enumerate(sample_data):
        points = []
        for x_idx, value in enumerate(sample_data[sample]):
            points.append(scale(value[0], x_axis))
            points.append(scale(value[1], y_axis))

        color = color_arr[idx % len(color_arr)]
        paths.append(
            PolyLine(points,
                     strokeColor=color,
                     fillColor=color,
                     strokeOpacity=1.0,
                     strokeWidth=0.5))

    return paths
Example #18
0
def x_axis_title(x_axis, y_axis):
    x = ((x_axis["max"] - x_axis["min"]) / 2) + x_axis["min"]
    return [
        text(scale(x, x_axis) - (len(x_axis["title"]) * 6),
             y_scale(y_axis["min"], y_axis) + 34,
             x_axis["title"],
             style="font: 18px sans-serif")
    ]
Example #19
0
def x_axis_text(x_axis, y_axis):
    txt = []
    for tic in x_axis["tics"]:
        txt.append(
            text(
                scale(tic, x_axis) - 4,
                y_scale(y_axis["min"], y_axis) + 18, "%s" % tic))

    return txt
Example #20
0
def title(txt, x_axis):
    return [
        text(
            scale(x_axis["min"], x_axis),
            30,
            txt,
            style="font: 22px sans-serif",
        )
    ]
Example #21
0
def y_axis_text(x_axis, y_axis, side):
    if side == "left":
        x = scale(x_axis["min"], x_axis) - 5
        anchor = "end"
    else:
        x = scale(x_axis["max"], x_axis) + 5
        anchor = "start"

    txt = []
    for tic in y_axis["tics"]:
        txt.append(
            String(x,
                   scale(tic, y_axis) - 2,
                   "%s" % tic,
                   fontSize=8,
                   fontName="Helvetica",
                   textAnchor=anchor))

    return txt
def sample_paths(data, x_axis, y_axis):
    paths = []
    for idx, key in enumerate(data):
        points = []
        for x_idx, value in enumerate(data[key]):
            points.append("%s,%s" %
                          (scale(value[0], x_axis), y_scale(value[1], y_axis)))
        color = color_arr[idx % len(color_arr)]
        paths.append(svg.path(points, color=color))

    return paths
Example #23
0
def get_keys(key_items, x_axis, y_axis, element_type="line"):
    keys = []
    x = scale(x_axis["max"], x_axis) + 60
    y = y_scale(y_axis["max"], y_axis)

    for idx, key in enumerate(key_items):
        color = color_arr[idx % len(color_arr)]
        y_val = y + (15 * (idx + 1))
        keys.append(get_key_symbol(x, y_val, element_type, color))
        keys.append(text(x + 20, y_val, key.split('_')[0]))

    return keys
Example #24
0
def x_axis_lines(x_axis, y_axis):
    lines = []
    for tic in x_axis["tics"]:
        x = scale(tic, x_axis)
        lines.append(
            line(x,
                 y_scale(y_axis["min"], y_axis),
                 x,
                 y_scale(y_axis["max"], y_axis),
                 opacity=0.5,
                 dashes=3))

    return lines
def histogram_lines(pop_data, x_axis, y_axis):
    histo_lines = []
    for cn in pop_data:
        y = y_scale(pop_data[cn], y_axis)
        x = scale(cn, x_axis)
        histo_lines.append(
            svg.line(x,
                     y,
                     x,
                     y_scale(0, y_axis),
                     color=colors["grey"],
                     opacity=0.5))
    return histo_lines
def sample_lines(sample_data, x_axis, y_axis):
    lines = []
    samples = iter(sample_data)
    for idx, key in enumerate(samples):
        x = scale(sample_data[key], x_axis)
        lines.append(
            svg.line(x,
                     y_scale(0, y_axis),
                     x,
                     y_scale(y_axis["max"], y_axis),
                     color=color_arr[idx % len(color_arr)]))

    return lines
Example #27
0
def y_axis_title(x_axis, y_axis, side):
    if side == "left":
        y = 45
        x = -(y_scale(y_axis["min"], y_axis))
        transform = "rotate(270)"
    else:
        y = -35 - scale(x_axis["max"], x_axis)
        x = y_scale(y_axis["max"], y_axis)
        transform = "rotate(90)"
    return [
        text(x,
             y,
             y_axis["title"],
             style="font: 18px sans-serif",
             transform=transform)
    ]
def circles(data, x_axis, y_axis):
    spots = []

    for idx, group in enumerate(data):
        colour = color_arr[idx % len(color_arr)]
        for x_val, y_val in data[group]:
            circle = svg.circle(scale(x_val, x_axis),
                                y_scale(y_val, y_axis),
                                4,
                                fill_color=colour,
                                border_color=colour)
            circle = svg.add_tooltip(
                circle, "%s\n%s: %s\nValue: %s" %
                (group, x_axis["title"], x_val + 1, y_val))
            spots.append(circle)
    return spots
Example #29
0
def x_axis_tics(x_axis, y_axis):
    tics = [
        Line(scale(x_axis["min"], x_axis),
             scale(y_axis["min"], y_axis),
             scale(x_axis["min"], x_axis),
             scale(y_axis["max"], y_axis),
             strokeWidth=0.5)
    ]

    for tic in x_axis["tics"]:
        tics.append(
            Line(scale(tic, x_axis),
                 scale(y_axis["min"], y_axis),
                 scale(tic, x_axis),
                 scale(y_axis["min"], y_axis) - 4,
                 strokeWidth=0.5))

    return tics
Example #30
0
def y_axis_tics(x_axis, y_axis, side):
    if side == "left":
        x1 = scale(x_axis["min"], x_axis) - 6
        x2 = scale(x_axis["min"], x_axis)
    else:
        x1 = scale(x_axis["max"], x_axis)
        x2 = scale(x_axis["max"], x_axis) + 4

    tics = [
        line(scale(x_axis["min"], x_axis), y_scale(y_axis["min"], y_axis),
             scale(x_axis["max"], x_axis), y_scale(y_axis["min"], y_axis))
    ]
    for tic in y_axis["tics"]:
        tics.append(line(x1, y_scale(tic, y_axis), x2, y_scale(tic, y_axis)))

    return tics