网上搜了一些社区发现可视化的代码,发现GitHub上有几个不错的可视化案例,如
https://github.com/networkanddatasciencelab/SNA-Community-Detection
https://github.com/networkanddatasciencelab/Network_Analytical_Notebooks
https://github.com/networkanddatasciencelab/HIN_Community_Detection
这些效果比较好,但是都用了一些其他的包,比如 igraph (安装这个包经常会出问题,我就是因为没有装好就不想用它的画图布局了,然后自己写了这个代码)。
代码里面的配色方案可以参考这篇文章:设计师必备,101个最佳配色方案!
(注:这里面的配色都是16进制的,如果用于PPT等RGB颜色设置的话,需要进行颜色转换,网上有很多颜色码转换工具,如 https://www.sioe.cn/yingyong/yanse-rgb-16/)
这是原图
这是采用贪婪算法检测社区之后的可视化效果
代码如下
import networkx as nx
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from networkx.algorithms import community
import random
# science and nature journal '#e3a6a1', '#bc5f6a', '#19b3b1', '#034b61'
# star sky science-fiction '#b2a59f', '#023459', '#1e646e', '#002c2f'
# delicate & shopping & pettyfashion '#b2d6ca', '#fe5858', '#024b40', '#5d353e'
colors = ['#fe5858', '#034b61', '#5d353e', '#b2d6ca']
options = {
'font_family': 'serif', 'font_weight': 'semibold', 'font_size': '12', 'font_color': '#ffffff'}
savefig_path = 'F:/Python/NetworkSci/'
def com_postion(size,scale=1, center=(0, 0)<