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]
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
def get_one(query: Query) -> BaseModel: return query.one()