Esempio n. 1
0
def plot_drafts(r_query: Query,
                ax_in: Axes,
                r_name: str = "Opposition",
                d_name: str = "Opposition") -> list:
    """Plot the draft lines from a replay onto an axes

    Arguments:
        replay {Replay} -- Replay object containing the TeamSelections.
        ax_in {Axes} -- Axes to plot on.
        width {int} -- Width of the draft to scale everything to.

    Keyword Arguments:
        r_name {str} -- Radiant team name. (default: {"Opposition"})
        d_name {str} -- Dire team name. (default: {"Opposition"})

    Returns:
        list -- List of generated plotted objects.
    """
    replay = r_query.one()
    for t in replay.teams:
        if t.team == Team.RADIANT:
            rdraft = process_team_portrait(replay, t)
        else:
            ddraft = process_team_portrait(replay, t)

    r_draft_box = add_draft_axes(rdraft, ax_in, height=0.075, origin=(0, 1))
    r_name_box = ax_in.text(
        s=r_name,
        x=0,
        y=0.08,
        path_effects=[PathEffects.withStroke(linewidth=3, foreground="w")],
        ha='left',
        va='bottom')

    d_draft_box = add_draft_axes(ddraft,
                                 ax_in,
                                 height=0.075,
                                 origin=(0, 1 + 0.1))
    d_name_box = ax_in.text(
        s=d_name,
        x=1.0,
        y=1.1 - 0.08,
        path_effects=[PathEffects.withStroke(linewidth=3, foreground="w")],
        ha='right',
        va='top')

    return [r_draft_box, r_name_box, d_draft_box, d_name_box]
Esempio n. 2
0
def plot_drafts_above(
    r_query: Query,
    ax_in: Axes,
    width,
    r_name: str = "Opposition",
    d_name: str = "Opposition",
) -> list:
    """Plot the draft lines from a replay above an axes

    Arguments:
        replay {Replay} -- Replay object containing the TeamSelections.
        ax_in {Axes} -- Axes to plot on.

    Keyword Arguments:
        r_name {str} -- Radiant team name. (default: {"Opposition"})
        d_name {str} -- Dire team name. (default: {"Opposition"})

    Returns:
        list -- List of generated plotted objects.
    """
    replay: Replay = r_query.one()
    extra_ents = []
    for t in replay.teams:
        if len(t.draft) == 0:
            print(f"No draft for {t.team} in {replay.replayID}")
            continue
        if t.team == Team.RADIANT:
            rdraft = process_team_portrait(replay, t)
            rdraft.thumbnail((width, rdraft.size[1] * width / rdraft.size[0]),
                             ANTIALIAS)
            rdraft.thumbnail((width, rdraft.size[1] * width / rdraft.size[0]),
                             ANTIALIAS)
            r_draft_box = make_image_annotation2(rdraft,
                                                 ax_in,
                                                 x=0.5,
                                                 y=1.1,
                                                 size=0.78)
            r_name_box = ax_in.text(s=r_name,
                                    x=0,
                                    y=1.0 + 0.18,
                                    path_effects=[
                                        PathEffects.withStroke(linewidth=3,
                                                               foreground="w")
                                    ],
                                    ha='left',
                                    va='bottom',
                                    zorder=5,
                                    color='#598307')
            extra_ents += [r_draft_box, r_name_box]
        else:
            ddraft = process_team_portrait(replay, t)
            ddraft.thumbnail((width, ddraft.size[1] * width / ddraft.size[0]),
                             ANTIALIAS)

            d_draft_box = make_image_annotation2(ddraft,
                                                 ax_in,
                                                 x=0.5,
                                                 y=1.0,
                                                 size=0.78)
            d_name_box = ax_in.text(s=d_name,
                                    x=0.0,
                                    y=1.0 + 0.08,
                                    path_effects=[
                                        PathEffects.withStroke(linewidth=3,
                                                               foreground="w")
                                    ],
                                    ha='left',
                                    va='bottom',
                                    zorder=5,
                                    color='#A83806')
            extra_ents += [d_draft_box, d_name_box]

    return extra_ents
Esempio n. 3
0
 def get_one(query: Query) -> BaseModel:
     return query.one()