当前位置: 首页 > 科技观察

一行Python代码轻松构建树状热力图

时间:2023-03-12 22:34:31 科技观察

今天和大家一起学习一种可视化技术:构建树状热力图treemap。树状图易于可视化且易于理解。树状图通过显示不同大小的矩形来传达不同大小的数据量。一般认为,较大的矩形表示整体的大部分,而较小的矩形表示整体的较小部分。在本文中,云朵老师将学习如何使用Squarify库在Python中构建树状图。引入树状图以使用嵌套在一起的不同大小的矩形可视化分层数据。每个矩形的大小与其代表的数据总量成正比。这些嵌套的矩形代表树的分支,因此得名。除了大小之外,每个矩形都有代表一个独特类别的独特颜色。树状图广泛应用于从金融机构到销售组织的各个行业。Treemaps最早由马里兰大学人机交互实验室的BenShneiderman教授于1990年代初发明。这种可视化背后的想法是在固定空间中按大小比较数量。现在,我们将看看如何实际构建词云。DendrogramofFlorida来源:https://commons.wikimedia.org使用Squarify构建树状图在Python中,您可以直接使用Squarify构建树状图。而且只需要一行代码squarify.plot(data)就可以轻松构建。1.安装必要的库!pip安装squarify2。导入必要的库importmatplotlib.pyplotaspltimportsquarify3。创建随机数据随机生成一个值列表,这些值将作为数据传递到我们的图中。data=[500,250,60,120]4.绘制树状图使用**squarify.plot()**方法构建树状图。此处随机数据变量数据作为此squarify.plot方法的参数给出。此外,附加装饰线plt.axis('off')以隐藏树状图的轴。squarify.plot(data)plt.axis('off')plt.show()5.将它们放在一起importmatplotlib.pyplotasplimportsquarifydata=[500,250,60,120]squarify.plot(data)plt.axis('off')plt.show()执行这段代码时,我们得到:每次执行这段代码时,都会生成一组随机颜色的嵌套矩形。使用附加参数在.plot()方法的参数的帮助下,可以向树状图添??加更多装饰。可以通过显式指定属性来控制树状图的颜色、标签和填充。1.指定dendrogramimportmatplotlib.pyplot的颜色为pltimportsquarifysizes=[500,250,120,60]color=['red','green','blue','orange']squarify.plot(sizes,color=color)plt.axis('off')plt.show()执行这段代码时,我们得到:2.给树状图添加标签不同的标签值可以传递给squarify.plot()标签的列表属性以显式添加标签。如果不存在,这将覆盖现有标签或将标签添加到我们的树状图中。标签将按照与传递给.plot()的列表中相同的顺序添加到树状图中。importmatplotlib.pyplotaspltimportsquarifylabels=['A','AB','ABC','ABCD']sizes=[500,250,120,60]color=['red','green','blue','orange']squarify.plot(sizes,color=color,label=labels)plt.axis('off')plt.show()执行这段代码时,我们得到:3.dendrogram中的padscanAddingpads在树状图中将树状图中的每个混凝土彼此分开将有助于更好地区分矩形。当有大量类别或矩形时,这很有用。可以通过将pad参数设置为True来调用。importmatplotlib.pyplotaspltimportsquarifylabels=['AB','A','ABC','ABCD']sizes=[500,250,120,60]color=['red','green','blue','orange']squarify.plot(sizes,color=color,label=labels,pad=True)plt.axis('off')plt.show()执行代码时,我们得到:写在最后看这里来吧,构建树图是小菜一碟。除了squarify库之外,还可以使用Python中的其他几个库构建树状图。比如比较流行的plotly库。在今天的下一篇推文中,介绍了它的应用案例,感兴趣的朋友可以看看。importplotly_expressaspximportplotly.graph_objectsasgopx.treemap(names=name,parents=parent)go.Figure(go.Treemap(labels=name,parents=parent,))当然有很多BI工具可以使用更方便并简单地构建一个树状图。有时,树状图中可能会出现歧义。如果有多个类别具有相同的数量(或矩形大小)和相同的颜色深浅,用户最终将难以区分它们。因此,在构建树状图时,必须始终考虑所涉及的类别和颜色图的数量。

猜你喜欢