def METHOD_NAME(self) -> None:
    """Create a gauge chart.
    The gauge chart shows the percentage of features having the requested
    attribute(s).
    """
    def rotate(ratio, offset=(0, 0)):
        theta = ratio * pi
        c, s = np.cos(theta), np.sin(theta)
        r = np.array(((c, -s), (s, c)))
        return np.matmul(r.T, (-1, 0)) + offset
    fig = go.Figure(
        go.Indicator(
            domain={"x": [0, 1], "y": [0, 1]},
            mode="gauge",
            title={"text": "Attribute Completeness", "font": {"size": 40}},
            type="indicator",
            gauge={
                "axis": {
                    "range": [None, 100],
                    "tickwidth": 1,
                    "tickcolor": "darkblue",
                    "ticksuffix": "%",
                    "tickfont": dict(color="black", size=20),
                },
                "bar": {"color": "rgba(0,0,0,0)"},
                "steps": [
                    {"range": [0, self.threshold_red * 100], "color": "tomato"},
                    {
                        "range": [
                            self.threshold_red * 100,
                            self.threshold_yellow * 100,
                        ],
                        "color": "gold",
                    },
                    {
                        "range": [self.threshold_yellow * 100, 100],
                        "color": "darkseagreen",
                    },
                ],
            },
        )
    )
    fig.update_layout(
        font={"color": "black", "family": "Arial"},
        xaxis={"showgrid": False, "range": [-1, 1]},
        yaxis={"showgrid": False, "range": [0, 1]},
        plot_bgcolor="rgba(0,0,0,0)",
        autosize=True,
    )
    fig.update_xaxes(visible=False)
    fig.update_yaxes(visible=False)
    base = [0, 0]
    # TODO: test if we can remove the base stuff
    fig.add_annotation(
        ax=base[0],
        ay=base[1],
        axref="x",
        ayref="y",
        x=rotate(ratio=self.result.value)[0],
        y=rotate(ratio=self.result.value)[1],
        xref="x",
        yref="y",
        showarrow=True,
        arrowhead=0,
        arrowsize=1,
        arrowwidth=4,
    )
    fig.add_annotation(
        text=f"{self.result.value * 100:.1f}%",
        align="center",
        font=dict(color="black", size=35),
        showarrow=False,
        xref="paper",
        yref="paper",
        x=0.5,
        y=-0.2,
        borderwidth=0,
    )
    raw = fig.to_dict()
    raw["layout"].pop("template")  # remove boilerplate
    self.result.figure = raw