diff --git a/Utilities/Python/fdsplotlib.py b/Utilities/Python/fdsplotlib.py index 5706a49261f..acc39512fa5 100644 --- a/Utilities/Python/fdsplotlib.py +++ b/Utilities/Python/fdsplotlib.py @@ -67,8 +67,16 @@ def dataplot(config_filename,**kwargs): plot_range_in = kwargs.get('plot_range') plot_range = range(plot_range_in[0]-2,plot_range_in[-1]-1) + # Rebuild the default NA strings *excluding* 'N/A' + default_na = { + '', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', + '1.#IND', '1.#QNAN', '', 'NA', 'NULL', 'NaN', + 'n/a', 'nan', 'null' + } + safe_na_values = default_na # 'N/A' intentionally not included + # read the config file - df = pd.read_csv(configdir+config_filename, sep=',', engine='python', comment='#', quotechar='"') + df = pd.read_csv(configdir+config_filename, sep=',', engine='python', comment='#', quotechar='"', na_values=safe_na_values, keep_default_na=False) C = df.where(pd.notnull(df), None) Plot_Filename_Last = None @@ -103,12 +111,17 @@ def dataplot(config_filename,**kwargs): # read data from exp file # set header to the row where column names are stored (Python is 0 based) E = pd.read_csv(expdir+pp.d1_Filename, header=int(pp.d1_Col_Name_Row-1), sep=',', engine='python', comment='#', quotechar='"') + E.columns = E.columns.str.strip() # <-- Strip whitespace from headers x = E[pp.d1_Ind_Col_Name].values[:].astype(float) # y = E[pp.d1_Dep_Col_Name].values[:].astype(float) col_names = [c.strip() for c in pp.d1_Dep_Col_Name.split('|')] - # print(col_names) - y = E[col_names].values.astype(float) + # y = E[col_names].values.astype(float) + y = np.column_stack([ + E[cols].astype(float).sum(axis=1) if '+' in name else E[[name]].astype(float).values.ravel() + for name in col_names + for cols in [name.split('+')] + ]) styles = [c.strip() for c in pp.d1_Style.split('|')] key_labels = [c.strip() for c in pp.d1_Key.split('|')] @@ -147,6 +160,7 @@ def dataplot(config_filename,**kwargs): # read data from exp file # set header to the row where column names are stored (Python is 0 based) E = pd.read_csv(expdir+pp.d1_Filename, header=int(pp.d1_Col_Name_Row-1), sep=',', engine='python', comment='#', quotechar='"') + E.columns = E.columns.str.strip() # <-- Strip whitespace from headers x = E[pp.d1_Ind_Col_Name].values[:].astype(float) y = E[pp.d1_Dep_Col_Name].values[:].astype(float) @@ -164,10 +178,16 @@ def dataplot(config_filename,**kwargs): # get the model results M = pd.read_csv(cmpdir+pp.d2_Filename, header=int(pp.d2_Col_Name_Row-1), sep=',', engine='python', comment='#', quotechar='"') + M.columns = M.columns.str.strip() # <-- Strip whitespace from headers x = M[pp.d2_Ind_Col_Name].values[:].astype(float) # y = M[pp.d2_Dep_Col_Name].values[:].astype(float) col_names = [c.strip() for c in pp.d2_Dep_Col_Name.split('|')] - y = M[col_names].values.astype(float) + # y = M[col_names].values.astype(float) + y = np.column_stack([ + M[cols].astype(float).sum(axis=1) if '+' in name else M[[name]].astype(float).values.ravel() + for name in col_names + for cols in [name.split('+')] + ]) version_string = revision if (pp.VerStr_Filename):