我有一個 python 腳本,它從 csv 檔案中的矢量位置和方向獲取資料,然后使用 Matplotlib 中的 quiver 方法生成繪圖。使用 Pandas 資料框提取 csv 檔案坐標和方向的列,然后使用 Matplotlib 中的 quiver 方法進行繪制。它適用于少量檔案,但當我嘗試處理超過 1000 個檔案時會被“殺死”。任何關于我如何解決這個問題的想法都將受到高度贊賞。
# Import libraries
import os
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
directory = './'
for filename in os.listdir(directory):
if filename.endswith(".csv"):
print(os.path.join('./', filename))
df = pd.read_csv(os.path.join(directory, filename))
# import column of CSV file with x_pos info
x_pos = df['x'].tolist()
y_pos = df['y'].tolist()
x_direct = df['x_dir'].tolist()
y_direct = df['y_dir'].tolist()
scale = df['scalar'].tolist()
# Creating plot
fig, ax = plt.subplots(figsize = (10, 10))
ax.quiver(x_pos, y_pos, x_direct, y_direct, angles='xy', scale_units='xy', scale=1)
plt.savefig(os.path.splitext(os.path.join(directory, filename))[0] '.png')
continue
else:
continue
uj5u.com熱心網友回復:
保存后關閉圖形很重要:
for filename in os.listdir(directory):
if filename.endswith(".csv"):
...
fig, ax = plt.subplots(...)
ax.quiver(...)
plt.savefig(...)
plt.close(fig) # HERE: close figure
決議目錄的提示:
import pathlib
directory = '.'
for filename in pathlib.Path(directory).glob('*.csv'):
print(filename)
df = pd.read_csv(filename)
...
plt.savefig(filename.parent / f"{filename.stem}.png")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/440762.html
標籤:Python 熊猫 matplotlib 执行
上一篇:如何使用Matplotlib在條形圖中為重復值繪制單獨的條形?
下一篇:Voronoi細胞-洗掉邊界線
