如何制作一个适合面板的图形容器?

2024-07-05 10:30:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Matplotlib和wxPython显示一些数据。我有一个数字被加到了一个数字上。然后将画布添加到BoxSizer并设置为wx.展开|wx.全部,轮到它的BoxSizer由SetSizerAndFit设置。在

self.figure = Figure(None, dpi = 75)
self.displaycanvas = FigureCanvas(self, -1, self.figure)
self.axes = self.figure.add_subplot(111)
self.axes.imshow(self.data, interpolation="quadric")     

self.mainSizer = wx.BoxSizer()
self.mainSizer.Add(self.displaycanvas, 1, wx.EXPAND|wx.ALL, 5)
self.SetSizerAndFit(self.mainSizer)

然后将此面板添加到另一个面板中,在该面板中,将根据要添加的其他面板确定其大小。虽然我对面板的外部尺寸很满意,但我无法获得适合面板的数字:

enter image description here

具有所有爪的大面板应缩放以适合面板,同时保持其纵横比。在

所以我想知道,为什么图形不能扩展到适合面板的大小?


Tags: 数据self面板matplotlib画布wxpython数字figure
1条回答
网友
1楼 · 发布于 2024-07-05 10:30:10

您可以创建一个具有显式边界的axes对象,而不是从add_subplot方法获取轴。所以不是

self.axes = self.figure.add_subplot(111)

使用

^{pr2}$

这四个数字是轴的左边缘、下边缘、宽度和高度,以图形宽度和高度的分数表示。[0,0,1,1]将展开图像以适合整个图形。当然,长宽比仍然存在问题。如果您想保持图像的纵横比,那么它不会总是填充整个小部件空间(取决于小部件的形状)。如果纵横比变化正常,您可以这样调用im\u show

self.axes.imshow(self.data, interpolation="quadric", aspect='auto')

这将使图像填充小部件,无论形状如何。在

如果没有自动纵横比,则会导致:

enter image description here

相关问题 更多 >