我正在尝试添加一个随机图的节点度数的直方图,我的显示就好了。但是当我点击屏幕上的任何地方时,我正试图制作一个新的随机图表。我正在按照matplotlib
的文档here的方式进行操作,并得到其他一些SO帖子的帮助,但出于某种原因,代码无效。
这就是我所拥有的:
import networkx as nx, matplotlib.pyplot as plt
fig = plt.figure()
def createGraph():
# Generate random graph
g = nx.gnp_random_graph(100,0.3)
# Get the degrees of each node in the graph
degrees = [degree for (node, degree) in g.degree()]
## create histogram
count, bins, patches = plt.hist(degrees, edgecolor='black', normed=1, facecolor='red', alpha=0.75)
## Create the plot axes and labels
plt.xlabel('Degree')
plt.ylabel('Counts')
plt.title("Histogram of Degrees:")
plt.axis([min(degrees)-1, max(degrees)+1, 0, max(count)])
plt.show()
def onclick(event):
# Just any indication that something happened
print("TOUCHED")
## program code
createGraph()
cid = fig.canvas.mpl_connect('button_press_event', onclick)
(此代码需要networkx
库)但基本上,您只需要一个随机的数字列表,并用它替换度数列表。