是否可以使用matplotlib创建图,所以当窗口最大化时,图仅占据屏幕的一小部分?例如,请考虑以下示例。在这种情况下,我想将3个子图布置在一条水平线上,并且我想保持较小的尺寸,这就是为什么我添加2行带有空白子图的原因。当我使用figsize时,弹出的窗口确实具有指定的大小,但是一旦最大化,matplotlib会重新调整子图以占据整个屏幕。我希望matplotlib重绘内容以适合此“条”,而不是相反。
因此,是否可以直接创建带状结构,而无需从matplotlib进行不必要的调整大小,而无需添加所有这些不必要的空白子图来完成任务?
谢谢!
编辑
我正在使用Python 3.5和Matplotlib 2.2.3运行此程序。交互式后端是TkAgg。
答案 0 :(得分:2)
Matplotlib的子图网格相对于图形尺寸以单位定位。因此,在绝对坐标中定位子图需要进行一些调整。
您可以以英寸为单位定义网格的宽度和高度,然后在每次调整图形大小时计算网格的边距。
在下面的图中,无论图形大小如何,网格始终保持4英寸宽和1英寸高。
.dark_mode
{
background-color: #333 !imprtant;
color: #fff !important;
}
答案 1 :(得分:0)
您没有解释您的可视化方法。 因此,根据我的说法,您可以尝试子图。 在这里查看子图的工作方式(https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplot)
from matplotlib import pyplot as PLT
fig = PLT.figure()
ax1 = fig.add_subplot(211)
ax1.plot([(1, 2), (3, 4)], [(4, 3), (2, 3)])
ax2 = fig.add_subplot(221)
ax2.plot([(7, 2), (5, 3)], [(1, 6), (9, 5)])
ax3 = fig.add_subplot(222)
ax3.plot([(7, 2), (5, 3)], [(1, 6), (9, 5)])
PLT.show()