def _ordinal_plot()

in spotify_confidence/analysis/bayesian/bayesian_base.py [0:0]


    def _ordinal_plot(self, center_name, df, groupby, level_name, remaining_groups, absolute, title, y_axis_label):
        df = add_color_column(df, remaining_groups)
        colors = "color" if remaining_groups else None
        ch = chartify.Chart(x_axis_type=self._ordinal_type())
        ch.plot.line(
            data_frame=df.sort_values(self._ordinal_group_column),
            x_column=self._ordinal_group_column,
            y_column=center_name,
            color_column=colors,
        )
        ch.style.color_palette.reset_palette_order()
        ch.plot.area(
            data_frame=df.sort_values(self._ordinal_group_column),
            x_column=self._ordinal_group_column,
            y_column="ci_lower",
            second_y_column="ci_upper",
            color_column=colors,
        )
        ch.axes.set_yaxis_label(y_axis_label)
        ch.axes.set_xaxis_label(self._ordinal_group_column)
        ch.set_source_label("")
        axis_format = axis_format_precision(df["ci_lower"].min(), df["ci_upper"].max(), absolute)
        ch.axes.set_yaxis_tick_format(axis_format)
        subtitle = "" if not groupby else "{}: {}".format(groupby, level_name)
        ch.set_subtitle(subtitle)
        ch.set_title(title)
        if colors:
            ch.set_legend_location("outside_bottom")
        return ch