在nx.draw中node_color的颜色高级设置
时间: 2023-06-23 21:08:32 浏览: 61
在 `nx.draw` 中,你可以使用 `node_color` 参数来设置节点的颜色。如果你想要更高级的设置,可以传递一个列表或数组给 `node_color`,其中每个元素对应于每个节点的颜色。例如:
```python
import networkx as nx
import matplotlib.pyplot as plt
# 创建图
G = nx.Graph()
G.add_edges_from([(1,2),(1,3),(2,3),(3,4),(4,5),(4,6),(5,6),(6,7),(7,8),(7,9),(8,9)])
# 设置节点颜色
node_color = ['red', 'blue', 'green', 'yellow', 'orange', 'purple', 'cyan', 'magenta', 'brown', 'pink']
# 绘图
nx.draw(G, with_labels=True, node_color=node_color, node_size=800)
plt.show()
```
在这个例子中,我们将节点颜色设置为一个颜色列表,其中 `node_color[0]` 对应于节点1的颜色,`node_color[1]` 对应于节点2的颜色,以此类推。你可以根据需要自定义这个列表。另外,你也可以使用更高级的颜色映射来设置节点的颜色,例如使用 `matplotlib` 中的 `cm` 模块中的颜色映射。
相关问题
import community G = nx.karate_club_graph() partition = community.best_partition(G) pos = nx.spring_layout(G) plt.figure(figsize=(12,12)) plt.axis('off') nx.draw_networkx_nodes(G, pos, node_size=200, cmap=plt.cm.RdYlBu, node_color=list(partition.values())) nx.draw_networkx_edges(G,pos, alpha=0.5)
这段代码使用了`python-louvain`库中的`community.best_partition`函数来对Karate Club图进行社区检测,并使用`NetworkX`库和`Matplotlib`库来可视化结果。
具体步骤如下:
1. 导入所需的模块。
```
import networkx as nx
import community
import matplotlib.pyplot as plt
```
2. 创建Karate Club图。
```
G = nx.karate_club_graph()
```
3. 使用`community.best_partition`函数检测图中的社区,并将结果存储在字典`partition`中。
```
partition = community.best_partition(G)
```
4. 使用`nx.spring_layout`函数来计算节点的位置,并将结果存储在`pos`中。
```
pos = nx.spring_layout(G)
```
5. 使用`plt.figure`函数创建一个图形对象,设置图形大小并关闭坐标轴。
```
plt.figure(figsize=(12,12))
plt.axis('off')
```
6. 使用`nx.draw_networkx_nodes`函数绘制节点,并使用`partition`字典中存储的社区信息来设置节点颜色。
```
nx.draw_networkx_nodes(G, pos, node_size=200, cmap=plt.cm.RdYlBu, node_color=list(partition.values()))
```
7. 使用`nx.draw_networkx_edges`函数绘制边缘。
```
nx.draw_networkx_edges(G,pos, alpha=0.5)
```
8. 使用`plt.show`函数显示图形。
```
plt.show()
```
这样就可以得到一个带有社区颜色的Karate Club图,其中每个颜色代表一个社区。
nx.draw_networkx_nodes(G, pos, node_color='lightblue', node_size=1000) nx.draw_networkx_edges(G, pos, edge_color='gray', arrows=True) nx.draw_networkx_labels(G, pos, font_size=10, font_family='SimHei')#防止中文乱码 plt.show()
这是一段 Python 代码,使用 NetworkX 库来画图。代码中使用了三个函数:
1. `nx.draw_networkx_nodes` 用于画节点,其中 `G` 是图对象,`pos` 是节点的位值,`node_color` 是节点的颜色,`node_size` 是节点的大小。
2. `nx.draw_networkx_edges` 用于画边,其中 `edge_color` 是边的颜色,`arrows` 决定了是否画出有向边的箭头。
3. `nx.draw_networkx_labels` 用于画节点标签,其中 `font_size` 是标签的字体大小,`font_family` 是标签的字体名称。