不需要的圆形绘制节点
Unwanted Circular plotted Nodes
我正在尝试生成随机图形,为此我创建了一个具有随机 X 和 Y 坐标的节点列表
我的问题是这些节点似乎总是排成一个圆圈,我希望它们随机放置在方形区域中,中间没有大空 space。我曾尝试使用 random.random() 和 random.gauss() 以及其他 random.normalvariate(),但我总是得到类似的结果。我是否必须使用另一个随机函数来实现此目的,或者我分配随机坐标的方式有误吗?
这里有一些示例图
import networkx as nx
import matplotlib.pyplot as plt
import random
import string
alphabet = list(string.ascii_uppercase)
c=3
r=10
Array = [[0] * c for i in range(r)]
#Fill array with random Coordinates and a Name
for n in range(len(Array) - 1):
Array[n][0] = alphabet.pop(0)
Array[n][1] = random.random()
Array[n][2] = random.random()
G = nx.Graph()
# Add Nodes To Graph
for [name, x, y] in Array:
G.add_node(name, pos=(x, y))
#Plot it
nx.draw(G, with_labels=True, node_size=200)
plt.show()
只需将 nx.draw(G, with_labels=True, node_size=200)
添加到 nx.draw(G,pos=G.nodes('pos'), with_labels=True, node_size=200)
。
我正在尝试生成随机图形,为此我创建了一个具有随机 X 和 Y 坐标的节点列表
我的问题是这些节点似乎总是排成一个圆圈,我希望它们随机放置在方形区域中,中间没有大空 space。我曾尝试使用 random.random() 和 random.gauss() 以及其他 random.normalvariate(),但我总是得到类似的结果。我是否必须使用另一个随机函数来实现此目的,或者我分配随机坐标的方式有误吗? 这里有一些示例图
import networkx as nx
import matplotlib.pyplot as plt
import random
import string
alphabet = list(string.ascii_uppercase)
c=3
r=10
Array = [[0] * c for i in range(r)]
#Fill array with random Coordinates and a Name
for n in range(len(Array) - 1):
Array[n][0] = alphabet.pop(0)
Array[n][1] = random.random()
Array[n][2] = random.random()
G = nx.Graph()
# Add Nodes To Graph
for [name, x, y] in Array:
G.add_node(name, pos=(x, y))
#Plot it
nx.draw(G, with_labels=True, node_size=200)
plt.show()
只需将 nx.draw(G, with_labels=True, node_size=200)
添加到 nx.draw(G,pos=G.nodes('pos'), with_labels=True, node_size=200)
。