【发布时间】:2017-07-13 12:36:54
【问题描述】:
我想创建一个程序,允许用户首先在 Matplotlib 图中输入点,然后使用这些点创建 Voronoi 图。
弄清楚了这两个部分,但没有弄清楚连接。如何传递用户输入的点并在 Voronoi 部分使用它? (我只需要知道如何将points = np.random.rand(20,2) 更改为用户输入的点。)
绘制点:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_xlim([0, 10])
ax.set_ylim([0, 10])
def onclick(event):
print('x=%d, y=%d, xdata=%f, ydata=%f' %
(event.x, event.y, event.xdata, event.ydata))
plt.plot(event.xdata, event.ydata, 'bo')
fig.canvas.draw()
cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()`
创建 Voronoi 图:
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial import Voronoi, voronoi_plot_2d
fig = plt.figure()
points = np.random.rand(20,2)
vor = Voronoi(points)
voronoi_plot_2d(vor)
plt.show()
【问题讨论】:
-
你想用 voronoi 图生成一个新图还是在同一个图中绘制?
-
我现在并不真正关心这个。如果有可能在同一个情节中,那就太棒了,但现在没关系。
标签: python numpy matplotlib scipy voronoi