for c in cluster: points_by_cluster = pd.DataFrame(columns=('x', 'y', 'word', 'cluster')) for idx in cluster[c]: points_by_cluster = points_by_cluster.append(points.iloc[[idx]]) # list = [points.iloc[[idx]] for idx in cluster[c]] ax.scatter(points_by_cluster['x'], points_by_cluster['y'], alpha=0.7) text_labels = [] for i, point in points.iterrows(): t = ax.text(point.x + 0.0001, point.y, point.word, fontsize=10, alpha=0.8, url="http://www.instagram.com/" + point.word) t.set_visible(False) text_labels.append(t) # a tk.DrawingArea canvas = FigureCanvasTkAgg(f, master=root) canvas.show() canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1) # implement the default mpl key bindings from matplotlib.backend_bases import key_press_handler def on_key_event(event): print('you pressed %s' % event.key) key_press_handler(event, canvas, toolbar)