我正在使用Pandas和MatPlotLib构建一个小图形实用程序来解析数据并从工作中的机器输出图形。
当我使用
输出图表时plt.show()
我最终得到的图像不清晰,传说和标签彼此挤在一起。
但是,将窗口扩展为全屏可以解决我的问题,以允许图形可见的方式重新定位所有内容。
然后我将图表保存为类似的.png
plt.savefig('sampleFileName.png')
但是当它保存到图像时,不会保存图表的全屏正确版本,而是保存错误的默认版本。
如何将地图的全屏plt.show()保存为.png?
我希望我不会太困惑。
感谢您的帮助!
答案 0 :(得分:33)
用于最大化窗口大小的方法取决于您使用的matplotlib后端。有关3个最常见的后端,请参阅以下示例:
import matplotlib.pyplot as plt
plt.figure()
plt.plot([1,2], [1,2])
# Option 1
# QT backend
manager = plt.get_current_fig_manager()
manager.window.showMaximized()
# Option 2
# TkAgg backend
manager = plt.get_current_fig_manager()
manager.resize(*manager.window.maxsize())
# Option 3
# WX backend
manager = plt.get_current_fig_manager()
manager.frame.Maximize(True)
plt.show()
plt.savefig('sampleFileName.png')
您可以使用命令matplotlib.get_backend()
确定使用的后端。当您保存图形的最大化版本时,它将根据需要保存更大的图像。
答案 1 :(得分:2)
答案 2 :(得分:2)
对于使用上述解决方案未能全屏保存地块的每个人,这对我来说确实有效:
var s = "19971998";
String.Format("{0}-{1}", s.Substring(0,4), s.Substring(4, 4)));
您可能还想使用dpi(分辨率为每英寸点数)
figure = plt.gcf() # get current figure
figure.set_size_inches(32, 18) # set figure's size manually to your full screen (32x18)
plt.savefig('filename.png', bbox_inches='tight') # bbox_inches removes extra white spaces
答案 3 :(得分:0)
对于那些在上述答案中收到错误的人,这对我有用。
#Show full screen
mng = plt.get_current_fig_manager()
mng.full_screen_toggle()
答案 4 :(得分:0)
我找到了最常见的答案on this website。所有这些答案都是一团糟。 似乎可以在所有情况下使用它而不会出现兼容性问题。
如果您对此答案有任何疑问,请随时发表评论。
# Maximise the plotting window
plot_backend = matplotlib.get_backend()
mng = plt.get_current_fig_manager()
if plot_backend == 'TkAgg':
mng.resize(*mng.window.maxsize())
elif plot_backend == 'wxAgg':
mng.frame.Maximize(True)
elif plot_backend == 'Qt4Agg':
mng.window.showMaximized()