Python 如何在tkinter画布上绘制网格

Python 如何在tkinter画布上绘制网格,python,matplotlib,canvas,tkinter,grid,Python,Matplotlib,Canvas,Tkinter,Grid,我正在尝试在以下内容上绘制网格: from matplotlib.figure import figure = Figure(figsize=(10, 10)) a = figure.add_subplot(111) a.plot(x, y, '-r') canvas = FigureCanvasTkAgg(figure, master=window) canvas.get_tk_widget().pack() NavigationToolbar2Tk(canvas, plotWindow)

我正在尝试在以下内容上绘制网格:

from matplotlib.figure import 

figure = Figure(figsize=(10, 10))
a = figure.add_subplot(111)
a.plot(x, y, '-r')
canvas = FigureCanvasTkAgg(figure, master=window)
canvas.get_tk_widget().pack()
NavigationToolbar2Tk(canvas, plotWindow)
canvas.draw()
plotWindow只是一个tkinter.Frame对象


提前感谢:)

因为我没有你所有的代码,所以我建议这样做

a=图之后添加子图(111)

ax = f.gca()
ax.set_xticks(numpy.arange(0,1,0.5))
然后在
canvas=
之后放入

a.grid()
canvas.show()

省略canvas.draw()?

,因为我没有你所有的代码,这是我的建议

a=图之后添加子图(111)

ax = f.gca()
ax.set_xticks(numpy.arange(0,1,0.5))
然后在
canvas=
之后放入

a.grid()
canvas.show()

省略
canvas.draw()

IIUC,您的
figsize
太大,它会推离您的
导航工具栏。尝试以下操作,对代码进行最小更改:

from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2Tk
import tkinter as tk

root = tk.Tk()
window = tk.Canvas(root)
window.pack()
plotWindow = tk.Frame(root)
plotWindow.pack()

figure = Figure(figsize=(5, 5))
a = figure.add_subplot(111)
x=[-100,100]
y=[0,4]
a.plot(x, y, '-r')
a.grid()
canvas = FigureCanvasTkAgg(figure, master=window)
canvas.get_tk_widget().pack()
NavigationToolbar2Tk(canvas, plotWindow)
canvas.draw()

root.mainloop()

IIUC,您的
figsize
太大,它会推离您的
导航工具栏。尝试以下操作,对代码进行最小更改:

from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2Tk
import tkinter as tk

root = tk.Tk()
window = tk.Canvas(root)
window.pack()
plotWindow = tk.Frame(root)
plotWindow.pack()

figure = Figure(figsize=(5, 5))
a = figure.add_subplot(111)
x=[-100,100]
y=[0,4]
a.plot(x, y, '-r')
a.grid()
canvas = FigureCanvasTkAgg(figure, master=window)
canvas.get_tk_widget().pack()
NavigationToolbar2Tk(canvas, plotWindow)
canvas.draw()

root.mainloop()

您需要为此绘制matplot吗?通常在
matplot
中绘制线。您可以使用ie.
x=[0,0]y=[-100100]
绘制垂直线,使用ie.
x=[-100100]y=[0,0]
绘制水平线<代码>Matplot
还具有显示网格的功能。但所有这些都与
tkinter.Canvas
@furas-yesm无关,我确实尝试了.grid(),但我从未.show()显示我的绘图,因此它无法工作(当它运行时,会弹出另一个窗口)。我甚至不使用matplotlib.plot,只使用matplotlib.figure,当我尝试在图形上使用.grid()时,它根本不起作用,或者我不知道如何使用matplot。您需要matplot吗?通常在
matplot
中绘制线。您可以使用ie.
x=[0,0]y=[-100100]
绘制垂直线,使用ie.
x=[-100100]y=[0,0]
绘制水平线<代码>Matplot
还具有显示网格的功能。但所有这些都与
tkinter.Canvas
@furas-yesm无关,我确实尝试了.grid(),但我从未.show()显示我的绘图,因此它无法工作(当它运行时,会弹出另一个窗口)。我甚至不使用matplotlib.plot,只使用matplotlib.figure,当我尝试在图形上使用.grid()时,它根本不起作用,或者我不知道如何使用它