如何解决如何在python中用sankey图制作网格?
我有以下熊猫数据框
import pandas as pd
df_dict = {'index': [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],'columns': ['from','to','week','N'],'data': [[0.0,1.0,3.0,1],[0.0,4.0,5.0,6.0,10.0,12.0,14.0,2.0,9.0,21.0,7.0,2],[1.0,0.0,16.0,22.0,30.0,32.0,[3.0,8.0,11.0,20.0,27.0,34.0,[4.0,3],15.0,24.0,2]]}
df = pd.DataFrame(index=df_dict['index'],columns=df_dict['columns'],data=df_dict['data'])
其中 head
如下所示:
from to week N
0 0.0 1.0 3.0 1
1 0.0 1.0 4.0 1
2 0.0 1.0 5.0 1
3 0.0 1.0 6.0 1
4 0.0 1.0 10.0 1
我想创建一个桑基图,其中图表将被拆分为维度网格:
len(df['from'].unique())
次 len(df['week'].unique())
所以在 x 轴上会有 week
s,在 y 轴上会有 from
,所以在每一个 week
处,from
和to
将是图表的 nodes
。
在 head
示例中,我们将有 5 个 lines
,从 "node 0"
(在图表的最左侧)开始,并且:
- 一个
line
在"node 1"
前往week 3
- 一个
line
将在"node 1"
前往week 4
(此节点位于第 3 周等的"node 1"
的右侧) - 一个
line
会在"node 1"
等地week 5
看起来像这样:
有没有办法用 plotly
做到这一点?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。