import multiprocessing import os from utils.draw.draw_file import scatter from utils.file.trans_methods import read_file_to_df def draw(file, fengchang='测试'): name = os.path.basename(file).split('.')[0] df = read_file_to_df(file) df.loc[df['active_power'] <= 0, 'lab'] = -1 color_map = {-1: 'red', 0: 'green', 1: 'blue', 2: 'black', 3: 'orange', 4: 'magenta'} c = df['lab'].map(color_map) # -1:停机 0:好点 1:欠发功率点;2:超发功率点;3:额定风速以上的超发功率点 4: 限电 legend_map = {"停机": 'red', "好点": 'green', "欠发": 'blue', "超发": 'black', "额定风速以上的超发": 'orange', "限电": 'magenta'} scatter(name, x_label='风速', y_label='有功功率', x_values=df['wind_velocity'].values, y_values=df['active_power'].values, color=c, col_map=legend_map, save_file_path=os.path.dirname( os.path.dirname(__file__)) + os.sep + "tmp" + os.sep + str(fengchang) + os.sep + name + '结果.png') if __name__ == '__main__': read_dir = r"D:\data\清理数据\和风元宝山\test_11_test\minute" files = [read_dir + os.sep + i for i in os.listdir(read_dir)] with multiprocessing.Pool(6) as pool: pool.starmap(draw, [(file, "和风元宝山") for file in files])