Unverified 提交 bb5ebc29 authored 作者: Glenn Jocher's avatar Glenn Jocher 提交者: GitHub

Close `matplotlib` plots after opening (#4612)

* Close plots * Replace fig.close() for plt.close()
上级 11e7c7b4
...@@ -178,6 +178,7 @@ class ConfusionMatrix: ...@@ -178,6 +178,7 @@ class ConfusionMatrix:
fig.axes[0].set_xlabel('True') fig.axes[0].set_xlabel('True')
fig.axes[0].set_ylabel('Predicted') fig.axes[0].set_ylabel('Predicted')
fig.savefig(Path(save_dir) / 'confusion_matrix.png', dpi=250) fig.savefig(Path(save_dir) / 'confusion_matrix.png', dpi=250)
plt.close()
except Exception as e: except Exception as e:
print(f'WARNING: ConfusionMatrix plot failure: {e}') print(f'WARNING: ConfusionMatrix plot failure: {e}')
...@@ -308,6 +309,7 @@ def plot_pr_curve(px, py, ap, save_dir='pr_curve.png', names=()): ...@@ -308,6 +309,7 @@ def plot_pr_curve(px, py, ap, save_dir='pr_curve.png', names=()):
ax.set_ylim(0, 1) ax.set_ylim(0, 1)
plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left") plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left")
fig.savefig(Path(save_dir), dpi=250) fig.savefig(Path(save_dir), dpi=250)
plt.close()
def plot_mc_curve(px, py, save_dir='mc_curve.png', names=(), xlabel='Confidence', ylabel='Metric'): def plot_mc_curve(px, py, save_dir='mc_curve.png', names=(), xlabel='Confidence', ylabel='Metric'):
...@@ -328,3 +330,4 @@ def plot_mc_curve(px, py, save_dir='mc_curve.png', names=(), xlabel='Confidence' ...@@ -328,3 +330,4 @@ def plot_mc_curve(px, py, save_dir='mc_curve.png', names=(), xlabel='Confidence'
ax.set_ylim(0, 1) ax.set_ylim(0, 1)
plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left") plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left")
fig.savefig(Path(save_dir), dpi=250) fig.savefig(Path(save_dir), dpi=250)
plt.close()
...@@ -345,7 +345,6 @@ def profile_idetection(start=0, stop=0, labels=(), save_dir=''): ...@@ -345,7 +345,6 @@ def profile_idetection(start=0, stop=0, labels=(), save_dir=''):
a.remove() a.remove()
except Exception as e: except Exception as e:
print('Warning: Plotting error for %s; %s' % (f, e)) print('Warning: Plotting error for %s; %s' % (f, e))
ax[1].legend() ax[1].legend()
plt.savefig(Path(save_dir) / 'idetection_profile.png', dpi=200) plt.savefig(Path(save_dir) / 'idetection_profile.png', dpi=200)
...@@ -371,6 +370,7 @@ def plot_evolve(evolve_csv=Path('path/to/evolve.csv')): # from utils.plots impo ...@@ -371,6 +370,7 @@ def plot_evolve(evolve_csv=Path('path/to/evolve.csv')): # from utils.plots impo
print('%15s: %.3g' % (k, mu)) print('%15s: %.3g' % (k, mu))
f = evolve_csv.with_suffix('.png') # filename f = evolve_csv.with_suffix('.png') # filename
plt.savefig(f, dpi=200) plt.savefig(f, dpi=200)
plt.close()
print(f'Saved {f}') print(f'Saved {f}')
...@@ -397,6 +397,7 @@ def plot_results(file='path/to/results.csv', dir=''): ...@@ -397,6 +397,7 @@ def plot_results(file='path/to/results.csv', dir=''):
print(f'Warning: Plotting error for {f}: {e}') print(f'Warning: Plotting error for {f}: {e}')
ax[1].legend() ax[1].legend()
fig.savefig(save_dir / 'results.png', dpi=200) fig.savefig(save_dir / 'results.png', dpi=200)
plt.close()
def feature_visualization(x, module_type, stage, n=32, save_dir=Path('runs/detect/exp')): def feature_visualization(x, module_type, stage, n=32, save_dir=Path('runs/detect/exp')):
...@@ -423,3 +424,4 @@ def feature_visualization(x, module_type, stage, n=32, save_dir=Path('runs/detec ...@@ -423,3 +424,4 @@ def feature_visualization(x, module_type, stage, n=32, save_dir=Path('runs/detec
print(f'Saving {save_dir / f}... ({n}/{channels})') print(f'Saving {save_dir / f}... ({n}/{channels})')
plt.savefig(save_dir / f, dpi=300, bbox_inches='tight') plt.savefig(save_dir / f, dpi=300, bbox_inches='tight')
plt.close()
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论