Esempio n. 1
0
def _draw_nucleotide_info(event, dna_helix_graph: nx.DiGraph,
                          text_object: plt.Text, subplot: plt_axes.Subplot):
    mouseevent = event.mouseevent
    if mouseevent.dblclick or mouseevent.button != 1:
        return

    nucleotide_name = event.artist.get_label().split(":")[-1]
    nucleotide = _get_nucleotide_by_name(nucleotide_name, dna_helix_graph)
    nucleotide_info = nucleotide_utils.get_nucleotide_info(
        nucleotide=nucleotide)

    nucleotide_info_text = "Information for {}:\n\n".format(
        nucleotide_name).upper()
    nucleotide_info_text += nucleotide_utils.format_nucleotide_info(
        nucleotide_info)

    xlim = subplot.get_xlim()
    ylim = subplot.get_ylim()
    text_coord = (xlim[1] - 0.05 * (xlim[1] - xlim[0]),
                  ylim[1] - 0.05 * (ylim[1] - ylim[0]))

    text_object.set_text(nucleotide_info_text)
    text_object.set_x(text_coord[0])
    text_object.set_y(text_coord[1])
    text_object.set_visible(True)
    plt.show()