如何基于边列表数据使用mne_connectivity的plot_connectivity_circle绘制弦图?
使用mne_connectivity.viz.plot_connectivity_circle绘制弦图的参数配置问题
我尝试用mne_connectivity.viz库中的plot_connectivity_circle函数绘制弦图,数据结构如下:letter和number列代表不同节点,Count列代表节点间的连接数量。生成数据的代码如下:
import random import string import pandas as pd random.seed(10) df = pd.DataFrame({ "letter": [random.choice(string.ascii_lowercase) for x in range(20)], "number": [str(random.randint(0,22)) for x in range(20)], "Count": [random.randint(20,50) for x in range(20)] })
该数据框包含20行数据,letter列是随机生成的小写字母,number列是0到22的字符串格式整数,Count列是20到50之间的随机整数。
MNE的文档示例大多使用连通性分数方阵,但文档提到:如果传入对应节点名称的索引数组,也可以使用一维数组作为连通性分数。我认为df.Count可以作为这个分数,但不清楚如何按正确顺序给node_names和indices参数传入相关数据,希望得到指导。
另外,我已经用holoviews库实现了类似的可视化,但定制选项不足,相关代码如下:
import numpy as np import holoviews as hv from holoviews import opts, dim hv.extension('bokeh') hv.output(size=350) nodes = list(set(df['letter'].tolist() + df['number'].tolist())) nodes = hv.Dataset(pd.DataFrame(nodes, columns=['node'])) chord = hv.Chord((df, nodes)) chord.opts( opts.Chord( labels = 'node', label_text_font_size='12pt', node_color='node', node_cmap='Category20', node_size=10, edge_color='number', edge_cmap='Category20', edge_alpha=0.9, edge_line_width=1) )
这段代码生成的弦图展示了字母节点与数字节点之间的连接关系:节点标签为对应的字母或数字,不同节点用不同颜色区分;边的颜色对应number列的节点颜色,边的透明度和宽度固定,整体画布大小为350。
内容的提问来源于stack exchange,提问作者r0bt
相关产品推荐
相关产品推荐

