[英]Python + Matplotlib: multi-level treemap plot?
我最近从https://www.kaggle.com/philippsp/exploratory-analysis-instacart看到了这个树形图(两个层次结构,彩色,方形树形图)。
它是用 R
ggplot2::treemap
制作的,由:
treemap(tmp,index=c("department","aisle"),vSize="n",title="",
palette="Set3",border.col="#FFFFFF")
我想知道如何在 Python 中制作这个图?
我搜索了一下,但没有找到任何多级树形图示例。
您可以巧妙地使用。 在这里你可以找到几个例子。
https://plotly.com/python/treemaps/
这是一个非常简单的多级结构示例。
import plotly.express as px
import pandas as pd
from collections import defaultdict
data = defaultdict()
data['level_1'] = ['A', 'A', 'A', 'B', 'B', 'B']
data['level_2'] = ['X', 'X', 'Y', 'Z', 'Z', 'X']
data['level_3'] = ['1', '2', '2', '1', '1', '2']
data = pd.DataFrame.from_dict(data)
fig = px.treemap(data, path=['level_1', 'level_2', 'level_3'])
fig.show()
包matplotlib-extra
提供了一个支持多级树形图绘图的treemap
函数。 对于G20的数据集, treemap
可以产生类似的 treemap,如:
import matplotlib.pyplot as plt
import mpl_extra.treemap as tr
fig, ax = plt.subplots(figsize=(7,7), dpi=100, subplot_kw=dict(aspect=1.156))
trc = tr.treemap(ax, df, area='gdp_mil_usd', fill='hdi', labels='country',
levels=['region', 'country'],
textprops={'c':'w', 'wrap':True,
'place':'top left', 'max_fontsize':20},
rectprops={'ec':'w'},
subgroup_rectprops={'region':{'ec':'grey', 'lw':2, 'fill':False,
'zorder':5}},
subgroup_textprops={'region':{'c':'k', 'alpha':0.5, 'fontstyle':'italic'}},
)
ax.axis('off')
cb = fig.colorbar(trc.mappable, ax=ax, shrink=0.5)
cb.ax.set_title('hdi')
cb.outline.set_edgecolor('w')
plt.show()
得到的treemap如下:
有关更多信息,您可以查看项目,其中有一些示例。 源代码有一个 api 文档字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.