human
Solve the following python programming problem given the following code:
# Create my new backend
class MyOwnBandsBackend(PlotlyBandsBackend):
    
    def _draw_band(self, x, y, *args, **kwargs):
        kwargs["showlegend"] = bool(y.max() < 0)
        super()._draw_band(x, y, *args, **kwargs)
        
# And register it again
BandsPlot.backends.register("plotly_myown", MyOwnBandsBackend)

band_struct.plot(backend="plotly_myown")
Given the above code, generate some markdown instructions for it.
assistant
#Here is the Python code you requested.

<div class="alert alert-info">

Note

This already gives you an overview of how the backend works. If you want to know the very fine details, you can always go to the source code.

</div>

So, clearly PlotlyBandsBackend already contains the draw_gap method, otherwise it would not work. 
From the workflow description, we understand that each band is drawn with the _draw_band method, which calls the generic draw_line method. In plotly, line information is passed as dictionaries that contain several parameters. One of them is, for example, showlegend, which controls whether the line appears in the legend. We can use therefore our plotly knowledge to only show at the legend those bands that are below the fermi level: