Python 如何保存pyplot图形

Python 如何保存pyplot图形,python,matplotlib,Python,Matplotlib,我正在尝试将pyplot图形保存到.png文件中 问题是,图形显示在屏幕上,但文件是空白页 import matplotlib.pyplot as plt # Pie plotting code from Matplotlib.org plt.figure(figsize=(12,9)) labels = defaults.grade sizes = defaults.grade_pct_of_total colors = ['yellowgreen', 'gold', 'lightskyb

我正在尝试将pyplot图形保存到.png文件中

问题是,图形显示在屏幕上,但文件是空白页

import matplotlib.pyplot as plt

# Pie plotting code from Matplotlib.org 
plt.figure(figsize=(12,9))
labels = defaults.grade
sizes = defaults.grade_pct_of_total
colors = ['yellowgreen', 'gold', 'lightskyblue', 
          'lightcoral','blue','red','orange']
explode = (0.1, 0.1, 0.1, 0.1,0.1,0.1,0.1)

plt.pie(sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=True, startangle=90)

plt.title('Default contribution % \n\n')

# Set aspect ratio to be equal so that pie is drawn as a circle.
plt.axis('equal')

plt.show()
plt.savefig('Default Contributions by Grade.pdf', bbox_inches='tight')
注意

defaults.grade是一个列表['a'、'B'、'C'、'D'…] defaults.grade_pct_of_total是一系列浮动
plt.show也将清除您的画布。只需在plt.show解决问题之前删除它或运行plt.savefig。

plt.show也会清除画布。只需将其删除或在plt.show之前运行plt.savefig即可解决问题。

在显示之前保存该图。关闭窗口后销毁图形,这必须在执行当前savefig命令之前发生。无关的建议:您应该修改代码以使其可复制/可复制,而不是提供警告并将其作为练习留给将要回答您的问题的人。@PaulH-谢谢……什么是“使其可复制/可复制”?问题中提供的代码应该是一个最简单的工作示例:。您的代码不是因为它没有定义默认对象。因此,如果我将其复制/粘贴到解释器中,它将不会运行,并且我将无法观察代码的问题行为。你意识到了这一点,并告诉那些试图帮助你解决问题的人,但那不是他们的工作。您的工作是直接提供代码中的变通方法,以便我们可以复制、粘贴并专注于解决问题。@PaulH-非常感谢您花了这么多时间来纠正我的错误!谢谢你的关注!在显示图形之前保存它。关闭窗口后销毁图形,这必须在执行当前savefig命令之前发生。无关的建议:您应该修改代码以使其可复制/可复制,而不是提供警告并将其作为练习留给将要回答您的问题的人。@PaulH-谢谢……什么是“使其可复制/可复制”?问题中提供的代码应该是一个最简单的工作示例:。您的代码不是因为它没有定义默认对象。因此,如果我将其复制/粘贴到解释器中,它将不会运行,并且我将无法观察代码的问题行为。你意识到了这一点,并告诉那些试图帮助你解决问题的人,但那不是他们的工作。您的工作是直接提供代码中的变通方法,以便我们可以复制、粘贴并专注于解决问题。@PaulH-非常感谢您花了这么多时间来纠正我的错误!谢谢你的关注!