Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
class SolidTextLegend(TextLegendBase):
def __init__(self, text, color, **kwargs):
super().__init__(text, color, **kwargs)
class RegularTextLegend(TextLegendBase):
def __init__(self, text, color, **kwargs):
super().__init__(text, color, **kwargs)
class BrandsTextLegend(TextLegendBase):
def __init__(self, text, color, **kwargs):
super().__init__(text, color, **kwargs)
LEGENDSTYLE = {"solid": SolidTextLegend, "regular": RegularTextLegend, "brands": BrandsTextLegend}
class TextLegendHandler(HandlerBase):
def __init__(self, font_file):
super().__init__()
self.font_file = font_file
def create_artists(self, legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans):
x = xdescent + width / 2.0
y = ydescent + height / 2.0
kwargs = {
"horizontalalignment": "center",
"verticalalignment": "center",
"color": orig_handle.color,
"fontproperties": fm.FontProperties(fname=self.font_file, size=fontsize),
}
def create_artists(self, legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans):
x = xdescent + width / 2.0
y = ydescent + height / 2.0
kwargs = {
"horizontalalignment": "center",
"verticalalignment": "center",
"color": orig_handle.color,
"fontproperties": fm.FontProperties(fname=self.font_file, size=fontsize),
}
kwargs.update(orig_handle.kwargs)
annotation = Text(x, y, orig_handle.text, **kwargs)
return [annotation]
HANDLER_MAP = {
SolidTextLegend: TextLegendHandler(FONTAWESOME_FILES["solid"]),
RegularTextLegend: TextLegendHandler(FONTAWESOME_FILES["regular"]),
BrandsTextLegend: TextLegendHandler(FONTAWESOME_FILES["brands"]),
}
class Waffle(Figure):
"""
A custom Figure class to make waffle charts.
:param values: Numerical value of each category. If it is a dict, the keys would be used as labels.
:type values: list|dict|pandas.Series
:param rows: The number of lines of the waffle chart.
:type rows: int