我试图找到正确的方法来绘制包含用户在各个位置通常花费时间信息的数据集的图表。重要的是,我的数据有类别和子类别,具有逐渐增加的细粒度(例如,60%的人在“家中”,其中40%在“客厅”)。我知道TreeMaps可以显示我需要的信息和关系,但我被要求制作一种数据的“网络”可视化。
我特别寻找的是Python中的一种绘图方法,它可以让我按照落入其类别的用户数量自动调整节点(最好是节点标签)的大小来可视化我的数据。重要的是,所有子节点计数也将计入父节点中(因此树状图并不是一个选项,因为我需要在每个分支点上显示信息)。
我的数据看起来有点像这样(请注意,某些位置比其他位置更细粒度):
为了大致实现我想要的效果,请参见下面的图像。重要的是,我能够根据它们的子节点之和(或者仅仅是它们自己,如果它是一个末端节点)来调整节点的大小。我将运行许多不同过滤器的迭代,因此我需要一些可以轻松迭代的东西,而不仅仅是手动编写每个图形的外观。
有哪些Python库可能最好地实现这一点?我简要地研究了networkX,graph-tool和etetoolkit,但我不确定它们是否具有我正在寻找的确切功能。
这是我想制作的粗略近似:
我特别寻找的是Python中的一种绘图方法,它可以让我按照落入其类别的用户数量自动调整节点(最好是节点标签)的大小来可视化我的数据。重要的是,所有子节点计数也将计入父节点中(因此树状图并不是一个选项,因为我需要在每个分支点上显示信息)。
我的数据看起来有点像这样(请注意,某些位置比其他位置更细粒度):
| ID | BUILDING | subcat01 | subcat02 |
----------------------------------------
| 00 | home | kitchen | fridge |
| 01 | office | desk | NaN |
| 02 | office | reception | NaN |
| 03 | home | bedroom | bed |
| 04 | home | yard | NaN |
| 05 | home | livingroom| couch |
| 06 | office | conf_room | NaN |
| 07 | outdoors | NaN | NaN |
|... | ... | ... | ... |
为了大致实现我想要的效果,请参见下面的图像。重要的是,我能够根据它们的子节点之和(或者仅仅是它们自己,如果它是一个末端节点)来调整节点的大小。我将运行许多不同过滤器的迭代,因此我需要一些可以轻松迭代的东西,而不仅仅是手动编写每个图形的外观。
有哪些Python库可能最好地实现这一点?我简要地研究了networkX,graph-tool和etetoolkit,但我不确定它们是否具有我正在寻找的确切功能。
这是我想制作的粗略近似: