Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TkInter Matplotlib底图,如图CAVASTKAGG所示_Matplotlib_Tkinter_Wait_Toolkit - Fatal编程技术网

TkInter Matplotlib底图,如图CAVASTKAGG所示

TkInter Matplotlib底图,如图CAVASTKAGG所示,matplotlib,tkinter,wait,toolkit,Matplotlib,Tkinter,Wait,Toolkit,我正在尝试将Matplotlib基本映射添加到TkInter画布。但是,当我试图绘制一个Python崩溃图时,不使用底图也可以很好地工作。代码块#1是有效的代码,代码块#2使我的程序崩溃。如果我删除#2中除m=Basemap(…)部分之外的所有内容,它也会崩溃。计算Basemap(…)大约需要6或7秒,我想这就是TkInter崩溃的原因。你知道我怎么让特金特等吗 1: 2: canvas=FigureCanvasTkAgg(m,master=root1) 我认为你不应该在这里用“m” 您应该创建

我正在尝试将Matplotlib基本映射添加到TkInter画布。但是,当我试图绘制一个Python崩溃图时,不使用底图也可以很好地工作。代码块#1是有效的代码,代码块#2使我的程序崩溃。如果我删除#2中除
m=Basemap(…)
部分之外的所有内容,它也会崩溃。计算
Basemap(…)
大约需要6或7秒,我想这就是TkInter崩溃的原因。你知道我怎么让特金特等吗

1: 2: canvas=FigureCanvasTkAgg(m,master=root1)

我认为你不应该在这里用“m”

您应该创建一个地物,并添加一个子地块(ax),然后将该ax传递给basemap

并使用fig作为FigureCastKagg的参数

import matplotlib
matplotlib.use('TkAgg')
from mpl_toolkits.basemap import Basemap
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

import sys
if sys.version_info[0] < 3:
    import Tkinter as Tk
else:
    import tkinter as Tk

root = Tk.Tk()
fig = Figure()  ## here
ax1 = fig.add_subplot(111)  ## here

m = Basemap(width=12000000,height=9000000,projection='lcc', 
            resolution='c',lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.,
            ax=ax1) ## here
m.drawcoastlines()
m.drawmapboundary(fill_color='aqua')
m.fillcontinents(color='coral',lake_color='aqua')

canvas = FigureCanvasTkAgg(fig, master=root)  ## here
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

root.mainloop()
导入matplotlib
matplotlib.use('TkAgg')
从mpl_toolkits.basemap导入basemap
从matplotlib.figure导入图形
从matplotlib.backends.backend_tkagg导入图CAVASTKAGG
导入系统
如果系统版本信息[0]<3:
将Tkinter作为Tk导入
其他:
将tkinter作为Tk导入
root=Tk.Tk()
图=图()##这里
ax1=图添加_子图(111)###
m=底图(宽=12000000,高=9000000,投影=lcc',
分辨率=c',纬度1=45.,纬度2=55,纬度0=50,经度0=-107。,
ax=ax1)##这里
m、 海岸线
m、 drawmapboundary(填充颜色为aqua)
m、 填充陆地(颜色为珊瑚色,湖水色)
canvas=FigureCanvasTkAgg(fig,master=root)##这里
canvas.show()
canvas.get_tk_widget().pack(side=tk.TOP,fill=tk.BOTH,expand=1)
canvas.\u tkcanvas.pack(side=Tk.TOP,fill=Tk.BOTH,expand=1)
root.mainloop()

你说的“崩溃”是什么意思?默认情况下,应阻止任何操作。
Python意外退出
def plot_route(self, geom1, root):
            root1 = Tk()

            m = Basemap(width=12000000,height=9000000,projection='lcc', resolution='c',lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.)
            m.drawcoastlines()
            m.drawmapboundary(fill_color='aqua')
            m.fillcontinents(color='coral',lake_color='aqua')

            canvas = FigureCanvasTkAgg(m, master=root1)
            canvas.show()
            canvas.get_tk_widget().pack(side=TOP, fill=BOTH, expand=1)
            canvas._tkcanvas.pack(side=TOP, fill=BOTH, expand=1)

            root1.mainloop()
import matplotlib
matplotlib.use('TkAgg')
from mpl_toolkits.basemap import Basemap
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

import sys
if sys.version_info[0] < 3:
    import Tkinter as Tk
else:
    import tkinter as Tk

root = Tk.Tk()
fig = Figure()  ## here
ax1 = fig.add_subplot(111)  ## here

m = Basemap(width=12000000,height=9000000,projection='lcc', 
            resolution='c',lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.,
            ax=ax1) ## here
m.drawcoastlines()
m.drawmapboundary(fill_color='aqua')
m.fillcontinents(color='coral',lake_color='aqua')

canvas = FigureCanvasTkAgg(fig, master=root)  ## here
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

root.mainloop()