def get_data_explorer_page()

in src/responsibleai/rai_analyse/_score_card/classification_components.py [0:0]


def get_data_explorer_page(data):
    de_heading_left_elms = p(
        "Evaluate your dataset to assess representation of identified cohorts:"
    )

    de_heading_left_container = div(de_heading_left_elms, _class="left")

    de_containers = [div(de_heading_left_container, _class="container")]

    def get_de_bar_plot(data):
        class_0 = data[0]["prediction"][0]

        y_data = [
            str(c["short_label"]) + "<br>" + str(int(100 * c["population"])) + "% n"
            for c in data
        ]
        x_data = [
            100 * (list(c["prediction"]).count(class_0)) / (len(c["prediction"]))
            for c in data
        ]
        x_data = [[x, 100 - x] for x in x_data]

        tickvals = [0, 25, 50, 75, 100]
        ticktext = [str(x) + "%" for x in tickvals]
        legend = ["Predicted as {}".format(class_0)]

        png_base64 = cc.get_bar_plot(
            list(reversed(y_data)),
            list(reversed(x_data)),
            legend=legend,
            tickvals=tickvals,
            ticktext=ticktext,
            tickappend="%",
        )
        return div(
            img(_src="data:image/png;base64,{}".format(png_base64)),
            _class="image_div",
        )

    def get_de_containers(c):
        feature_list = ul()
        for d in c["data"]:
            feature_list.append(li("{}: {}".format(d["short_label"], d["label"])))

        left_container = div(h3(c["feature_name"]), feature_list, _class="left")
        de_main_elems = []

        de_main_elems.append(h3(c["feature_name"]))

        for i in c["data"]:
            de_main_elems.append(
                p(
                    'Cohort "{}" has {}% {}'.format(
                        i["label"],
                        round(i[c["primary_metric"]] * 100, 1),
                        c["primary_metric"],
                    )
                )
            )
        de_main_elems.append(
            div(
                p(
                    "Predicted classification output of the different cohorts are as follows:"
                ),
                get_de_bar_plot(c["data"]),
                _class="nobreak_div",
            )
        )

        main_container = div(de_main_elems, _class="main")

        return div(left_container, main_container, _class="container")

    for c in data:
        de_containers.append(get_de_containers(c))

    return str(div(cc.get_page_divider("Data Explorer"), de_containers))