首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Treemap -更改字体

Treemap -更改字体
EN

Stack Overflow用户
提问于 2021-03-19 03:45:03
回答 1查看 140关注 0票数 0

因此,我使用以下代码在Matplotlib中生成树映射。想知道是否有可能将第一行加粗,并增加字体大小。

所以:

加粗和更大: 0:

更小,没有加粗: 480

代码语言:javascript
复制
    import matplotlib.pyplot as plt
    import squarify    # pip install squarify (algorithm for treemap)
    import pandas as pd
    import psycopg2
    distributionlist = [480, 104, 55, 35, 29, 12, 18, 22, 14, 11, 144]
    group = ["0", "1", "2", "3", "4", "5", "6", "7","8","9","10+"]

    labels = ["%s:\n%s" % (label) for label in zip(group, distributionlist)]



    percents = [8,3,4,2,8,3,4,2]
    # Create a data frame with fake data
    df = pd.DataFrame({'nb_people': distributionlist, 'group':group })
    #df = pd.DataFrame({'nb_people':[8,3,4,2], 'group':["group A", "group B", "group C", "group D"] })

    # plot it

    squarify.plot(sizes=df['nb_people'], label=labels, alpha=.8)

    #squarify.plot(sizes=df['nb_people'], label=df['group'], alpha=.8 , color=colors )
    plt.axis('off')
    plt.show()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-19 04:38:09

通常单个matplotlib文本只有一种大小和一种样式。在这里,标签被创建为一个带换行符的字符串。

您可以使用

代码语言:javascript
复制
ax = squarify.plot(sizes=df['nb_people'], label=labels, alpha=.8)
ax.texts[0].set_size(30)
ax.texts[0].set_weight('bold')

要将文本设置为较大和粗体,请执行以下操作。

要拆分文本并仅设置第一行的粗细:

代码语言:javascript
复制
ax = squarify.plot(sizes=df['nb_people'], label=labels, alpha=.8)
text_parts = ax.texts[0].get_text().split("\n")
ax.texts[0].set_text(text_parts[0] + "\n")
ax.texts[0].set_size(30)
x, y = ax.texts[0].get_position()
new_text = ax.text(x, y, "\n" + text_parts[1], ha=ax.texts[0].get_ha(), va=ax.texts[0].get_va())
new_text.set_fontproperties(ax.texts[0].get_fontproperties())
ax.texts[0].set_weight('bold')

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66698087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档