如何在networkx.draw_networkx中添加颜色条?

我在对关系图进行聚类分析,并使用networkx来可视化结果:

G = nx.from_numpy_matrix(X)layout = nx.fruchterman_reingold_layout(G)nx.draw_networkx(G, pos=layout, with_labels=True, node_color=predict, cmap=plt.cm.coolwarm, vmin=0, vmax=1)

enter image description here

是否可以添加颜色条?直接使用plt.colorbar()会引发错误:

RuntimeError: No mappable was found to use for colorbar creation. First define a mappable such as an image (with imshow) or a contour set (with contourf).

文档中没有找到相关的选项。我也愿意考虑使用其他兼容Python 3的包来进行可视化。


回答:

以下是一个基于空手道俱乐部图的演示:

import pandas as pdimport networkx as nx    import matplotlib.pyplot as pltG = nx.karate_club_graph()df = (pd.DataFrame(list(G.degree), columns=['node','degree'])        .set_index('node'))df['club'] = pd.Series({node:data['club']                        for node,data in G.nodes(data=True)})df['color'] = df.groupby('club')['degree'].transform(lambda c: c/c.max())df.loc[df['club']=='Officer', 'color'] *= -1layout = nx.fruchterman_reingold_layout(G)vmin = df['color'].min()vmax = df['color'].max()cmap = plt.cm.coolwarmnx.draw_networkx(G, pos=layout, with_labels=True, node_color=df['color'],                 cmap=cmap, vmin=vmin, vmax=vmax)sm = plt.cm.ScalarMappable(cmap=cmap, norm=plt.Normalize(vmin=vmin, vmax=vmax))sm.set_array([])cbar = plt.colorbar(sm)

结果:

enter image description here

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注