From f347223fdb3c712980177e4dc91f64f1267e5857 Mon Sep 17 00:00:00 2001 From: soggyomelette <85685255+soggyomelette@users.noreply.github.com> Date: Mon, 15 Aug 2022 09:41:28 +0100 Subject: [PATCH] Scale text size with size of box in crypto/ov/hm (#2278) * Updated text size so it scales with size of box * fix linting Co-authored-by: minhhoang1023 <40023817+minhhoang1023@users.noreply.github.com> Co-authored-by: Chavithra Co-authored-by: Colin Delahunty <72827203+colin99d@users.noreply.github.com> --- .../overview/pycoingecko_view.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/openbb_terminal/cryptocurrency/overview/pycoingecko_view.py b/openbb_terminal/cryptocurrency/overview/pycoingecko_view.py index bfd47c9b21f..545fc668a75 100644 --- a/openbb_terminal/cryptocurrency/overview/pycoingecko_view.py +++ b/openbb_terminal/cryptocurrency/overview/pycoingecko_view.py @@ -90,11 +90,26 @@ def display_crypto_heatmap( squarify.plot( df["market_cap"], - label=df_copy["symbol"], alpha=0.8, color=colors, - text_kwargs={"color": "black", "size": 8}, ) + text_sizes = squarify.normalize_sizes(df["market_cap"], 100, 100) + rects = squarify.squarify(text_sizes, 0, 0, 100, 100) + for la, r in zip(df_copy["symbol"], rects): + x, y, dx, dy = r["x"], r["y"], r["dx"], r["dy"] + ax.text( + x + dx / 2, + y + dy / 2, + la, + va="center", + ha="center", + color="black", + size=( + text_sizes[df_copy.index[df_copy["symbol"] == la].tolist()[0]] + ** 0.5 + * 0.8 + ), + ) ax.set_title(f"Top {top} Cryptocurrencies {category_str}") ax.set_axis_off()