Python -тепловая карта Seaborn привязывается к событию щелчка мышью

Я разрабатываю простой (пока) графический интерфейс на tkinter. Сейчас у меня есть окно с графическим интерфейсом canvas объект и древовидная таблица в одном окне. Моя цель - загрузить csv Данные генерируют тепловую карту и используют позиции, чтобы показать дополнительные данные о выбранных местоположениях. Я уже могу создать тепловую карту (рисунок ниже) из csv,

Что мне нужно сейчас для canvas определить мой щелчок мышью и на основе данных о передаче кликов из одного и того же (или другого, это пока не имеет значения) csv к столу. Я попробовал несколько вещей, но я не совсем понимаю, как назначить данные на холсте или в таблице, чтобы они могли их распознать.

        def tableDisplayFromGraph(self):
        tableframe = tk.Frame(self.master)
        tableframe.grid(row=2, column=10, ipadx=4, pady=2, sticky ="e")  ## Packing against tableframe Frame

        COLUMNS = ['Type', 'Value']  ## Column Headers for Data

        ## See Documentation for more info on Treeview
        table = ttk.Treeview(tableframe, columns=COLUMNS, show='headings', padding=4)
        table.grid(row=0, column=0)

        for column in COLUMNS:  ## Setting Column Header
            table.heading(column, text=column)

        scroll = tk.Scrollbar(tableframe, command=table.yview)  ## Adding Vertical Scrollbar
        scroll.grid(row=0, column=1) # problem how to set scrollbar inside the table :/
        table.configure(yscrollcommand=scroll.set)  ## Attach Scrollbar :/

    def canvas(self):

        f = plt.figure(figsize=(8, 8), dpi=110)
        a = f.add_subplot(111)
        if not self.Data.empty:

            pivot_table = self.Data.pivot('Rows', 'Columns', 'B635 Mean')
            plt.xlabel('Columns', size=12)
            plt.ylabel('Rows', size=12)
            plt.title('Heat Map', size=15)
            sns.heatmap(pivot_table, annot=True, annot_kws={'size': 8},fmt="0.0f", linewidths=0, square=True, cmap='Reds')
        #a.clear()

        canvasFig = FigureCanvasTkAgg(f, master=self.master)
        canvasFig.get_tk_widget().grid(row=0, column=0, rowspan=5, columnspan=5, padx=30, pady=10, sticky="ew")

        navigatorFrame = tk.Frame(self.master)
        navigatorFrame.grid(row=21, column=0, columnspan=5, padx=30, sticky="nw")

        toolbar = NavigationToolbar2TkAgg(canvasFig, navigatorFrame)
        toolbar.update()
        canvasFig._tkcanvas.grid()
        f.canvas.mpl_connect('pick_event', self.pick)

    def pick(self, event):

        if canvas.find_withtag(CURRENT):
            canvas.itemconfig(CURRENT, fill="blue")
            canvas.update_idletasks()
            canvas.after(200)
            canvas.itemconfig(CURRENT, fill="red")

        canvas.bind("<Button-1>", self.pick)enter code here

Когда я нахожусь вокруг тепловой карты, холст не показывает координаты x,y. Пик это моя функция для события клика. Любая помощь будет оценена.

Это изображение моего графического интерфейса. Слева - моя тепловая карта, а справа - виджет дерева в виде таблицы для отображения дополнительных данных:

0 ответов

Другие вопросы по тегам