力导布局图是一种用来展示节点以及节点之间网络关系数据的图表,其布局算法模型建立在粒子物理理论的基础上,将节点模拟成为原子,通过原子间的引力和斥力得到节点的速度与加速度,计算其移动方位与距离,达到一个稳定平衡的状态,从而完成布局,便于描述节点间关系。
在专利分析中,力导布局图可以用来描述专利技术合作关系,帮助挖掘研发团队,进行技术聚类分析等。(相关链接:图表介绍 | 力导布局图)。
今天的教程教大家使用pyecharts来绘制自动聚类的动态力导布局图(如上图)。
准备数据:
绘图所用的excel数据表格如下:
(链接:https://pan.baidu.com/s/1AuxyEiKjnk_Od7Hse0q-yw 密码:fz7p)
数据横行表示数据源节点,即发射数据的节点,纵行表示数据目标节点,即接收数据的节点。横行和竖行的内容实际上是完全一样的发明人名称。表格中的数据表示两两发明人之间的合作申请量。
绘图思路:
导入绘图所需的两个扩展包python-igraph和pyecharts;
python-igraph和pyecharts其实都是用于绘制力导布局图的,但是为什么需要两个扩展包呢?
因为pyecharts的力导布局图的算法没有办法实现计算机自动根据远近关系对节点(即发明人)进行聚类,而python-igraph可以实现自动聚类。但是python-igraph的图表没有pyecharts那么美。
所以结合两者优点,需要导入两个扩展包。首先采用python-igraph对从excel中读取的数据进行计算分类,对分类后的数据标记分类信息,继而调用pyecharts绘图。
具体步骤如下:
STEP 1 导入绘图所需要的扩展包
作图需安装如下两个额外扩展包:在Anaconda prompt里使用pip installpyecharts命令安装pyecharts扩展包,使我们可以通过python语言调用百度的Echarts绘图包,而不必懂得javascript语言或者在线使用Echarts。详细操作过程见作图详解 | 利用Python绘制水流图。
根据教程作图详解|Anaconda扩展包的安装及bug处理,安装python-igraph,使我们可以通过python语言对excel数据进行聚类。
STEP 2 利用python-igraph实现自动聚类
导入绘图所需包:
frompyechartsimportGraph#导入echarts库中的力导布局图
importpandasaspd#导入pandas,用于操作excel文件
importnumpyasnp#导入numpy库,用于数值计算
importigraph#导入python-igraph库,用于对数据聚类
使用pandas读入excel数据:
df=pd.read_excel('力导布局图.xlsx')