lead/netdata/plotnet/show_plot.ipynb

97 lines
47 KiB
Plaintext
Raw Normal View History

2025-03-18 16:51:30 +08:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import networkx as nx\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# 设置中文字体\n",
"plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签\n",
"plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号\n",
"\n",
"\n",
"# 创建一个简单的加权复杂网络\n",
"G = nx.Graph()\n",
"\n",
"# 添加节点\n",
"nodes = range(1, 8) # 节点编号从1到7\n",
"G.add_nodes_from(nodes)\n",
"\n",
"# 添加带权重的边\n",
"edges = [\n",
" (1, 2, 2.1), (1, 3, 0.8), (2, 4, 1.5), (3, 4, 1.2),\n",
" (5, 6, 0.9), (5, 7, 1.8), (6, 7, 0.6),\n",
" (4, 5, 1.1) # 添加了一些额外的随机连接\n",
"]\n",
"for u, v, w in edges:\n",
" G.add_edge(u, v, weight=w)\n",
"\n",
"# 获取边的权重用于绘图\n",
"weights = [G[u][v]['weight'] for u, v in G.edges()]\n",
"\n",
"# 计算每个节点的度\n",
"node_degrees = dict(G.degree())\n",
"# 将节点度映射到节点大小\n",
"node_sizes = [node_degrees[node] * 800 for node in G.nodes()] # 度数越大,节点越大\n",
"\n",
"# 绘制网络\n",
"pos = nx.spring_layout(G, seed=42) # 使用 spring 布局\n",
"plt.figure(figsize=(8, 6))\n",
"\n",
"# 绘制节点和边\n",
"nx.draw_networkx_nodes(G, pos, node_size=node_sizes, node_color='skyblue', edgecolors='black')\n",
"nx.draw_networkx_edges(G, pos, width=[2 * w for w in weights], alpha=0.7)\n",
"nx.draw_networkx_labels(G, pos, font_size=15, font_color='black')\n",
"\n",
"# 添加边权重的标签\n",
"edge_labels = {(u, v): f\"{w:.1f}\" for u, v, w in edges}\n",
"nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, font_size=14)\n",
"\n",
"# 设置图形标题\n",
"# plt.title(\"复杂网络的构成示意图\", fontsize=14)\n",
"plt.axis('off')\n",
"\n",
"# 保存图片\n",
"plt.savefig(\"complex_network.png\", dpi=600, bbox_inches='tight')\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "lead",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.11"
}
},
"nbformat": 4,
"nbformat_minor": 2
}