竹林抚琴2866 2021-08-17 19:26
浏览 105
已结题

将matplotlib绘图放入tkinter后光标却无法显示,如何解决?

没有放入tkinter之前的代码如下:


import numpy as np
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.backend_bases import key_press_handler
from matplotlib.figure import Figure
from matplotlib.widgets import Cursor  # 处理鼠标

f = plt.figure(figsize=(5, 4), dpi=100)
a = f.add_subplot(111)  # 添加子图:1行1列第1个
x = np.arange(0, 3, 0.01)
y = np.sin(2 * np.pi * x)
a.plot(x, y)   # 在前面得到的子图上绘图
cursor = Cursor(a, useblit=True, color='red', linewidth=0.5, linestyle='--')
plt.show()

运行后的界面如下是有十字光标的

img

但是把这个放入tkinter之后,光标不见了,这是怎么回事,请有懂的朋友指点一下,放入tkinter的代码和运行图片如下:

img


import tkinter
import numpy as np
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.backend_bases import key_press_handler
from matplotlib.figure import Figure
from matplotlib.widgets import Cursor  # 处理鼠标

root = tkinter.Tk()  # 创建tkinter的主窗口
root.title("在tkinter中使用matplotlib")

f = Figure(figsize=(5, 4), dpi=100)
a = f.add_subplot(111)  # 添加子图:1行1列第1个
x = np.arange(0, 3, 0.01)
y = np.sin(2 * np.pi * x)
a.plot(x, y)

cursor = Cursor(a, useblit=True, color='w', linewidth=0.5, linestyle='--')   # 将绘制的图形显示到tkinter:创建属于root的canvas画布,并将图f置于画布上
canvas = FigureCanvasTkAgg(f, master=root)
canvas.draw()  
canvas.get_tk_widget().pack(side=tkinter.TOP,  # 上对齐
                            fill=tkinter.BOTH,  # 填充方式
                            expand=tkinter.YES)  # 随窗口大小调整而调整

# 主循环
root.mainloop()

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月25日
    • 创建了问题 8月17日

    悬赏问题

    • ¥15 rt-thread线程切换的问题
    • ¥20 python忆阻器数字识别
    • ¥15 无法输出helloworld
    • ¥15 高通uboot 打印ubi init err 22
    • ¥20 PDF元数据中的XMP媒体管理属性
    • ¥15 R语言中lasso回归报错
    • ¥15 网站突然不能访问了,上午还好好的
    • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
    • ¥15 semrush,SEO,内嵌网站,api
    • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊