子图未显示2个图

时间:2018-04-01 18:22:49

标签: python-3.x matplotlib canvas tkinter

这是我的代码的结果。

Here is the result of my code

这些是

from tkinter import *
from tkinter import ttk
import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure

当我想用subplot(2,2,x)查看代码来绘制4个图时,我遇到了问题。

    #Canvas 1
    self.f = Figure(figsize=(5,4), dpi=100)
    self.k = self.f.add_subplot(2, 2, 1)
    self.k.plot([1,2,3,4,5],[6,7,8,9,0])
    self.plot = FigureCanvasTkAgg(self.f, self.root)
    self.plot.show()
    self.plot.get_tk_widget().place(x=40,y=250)


    # Canvas 2
    self.f1 = Figure(figsize=(5,4), dpi=100)
    self.k1 = self.f.add_subplot(2, 2, 2)
    self.k1.plot([0,9,0,9,0],[6,7,8,9,0])


    # Canvas 3
    self.f2 = Figure(figsize=(5,4), dpi=100)
    self.k2 = self.f2.add_subplot(2, 2, 3)
    self.k2.plot([1,2,3,4,5],[0,9,0,9,0])


    # Canvas 4
    self.f3 = Figure(figsize=(5,4), dpi=100)
    self.k3 = self.f3.add_subplot(2, 2, 4)
    self.k3.plot([1,2,3,4,5],[0,9,0,9,0])

1 个答案:

答案 0 :(得分:0)

第二个画布被添加到第一个数字f,这就是显示它的原因。如果每个子图都有自己的数字,那么使用子图并没有多大意义。

应该解决问题,将所有子图添加到self.f