include_runattrs=True, include_attrs=True, include_itervars=True) except ValueError as e: plot.set_warning("Error while querying results: " + str(e)) exit(1) if df.empty: plot.set_warning("The result filter returned no data.") exit(1) if not xaxis_itervar and not iso_itervars: print( "The 'Itervar for X Axis' and 'Itervar for iso line' options were not set in the dialog, inferring them from the data.." ) xaxis_itervar, iso_itervar = utils.pick_two_columns(df) iso_itervars = [iso_itervar] if iso_itervar else [] print("X axis: " + xaxis_itervar + " iso lines: " + ",".join(iso_itervars)) if xaxis_itervar: utils.assert_columns_exist( df, [xaxis_itervar], "The iteration variable for the X axis could not be found") df[xaxis_itervar] = pd.to_numeric(df[xaxis_itervar], errors="ignore") else: plot.set_warning("Please select the iteration variable for the X axis!") exit(1) if iso_itervars: utils.assert_columns_exist( df, iso_itervars,
df = results.get_scalars(filter_expression, include_fields=include_fields, include_runattrs=True, include_attrs=True, include_itervars=True) except ValueError as e: raise chart.ChartScriptError("Error while querying results: " + str(e)) if df.empty: raise chart.ChartScriptError("The result filter returned no data.") if not xaxis_itervar and not group_by: print( "The 'X Axis' and 'Group By' options were not set in the dialog, inferring them from the data.." ) xaxis_itervar, group_by = utils.pick_two_columns(df) group_by = [group_by] if group_by else [] print("X Axis: " + xaxis_itervar + ", Group By: " + ",".join(group_by)) if xaxis_itervar: utils.assert_columns_exist( df, [xaxis_itervar], "The iteration variable for the X axis could not be found") df[xaxis_itervar] = pd.to_numeric(df[xaxis_itervar], errors="ignore") else: raise chart.ChartScriptError( "Please select the iteration variable for the X axis!") if xaxis_itervar in group_by: raise chart.ChartScriptError("X axis column also in grouper columns: " + xaxis_itervar)
include_runattrs=True) except ValueError as e: raise chart.ChartScriptError("Error while querying results: " + str(e)) if df.empty: raise chart.ChartScriptError("The result filter returned no data.") # determine "groups" and "series" for pivoting, and check them groups = utils.split(props["groups"]) series = utils.split(props["series"]) if not groups and not series: print( "The Groups and Series options were not set in the dialog, inferring them from the data." ) g, s = ("module", "name") if len(df) == 1 else utils.pick_two_columns(df) groups, series = [g], [s] if not groups or not groups[0] or not series or not series[0]: raise chart.ChartScriptError( "Please set both the Groups and Series properties in the dialog - or neither, for automatic setup." ) common = list(set(groups) & set(series)) if common: raise chart.ChartScriptError("Overlap between Group and Series columns: " + ", ".join(common)) utils.assert_columns_exist(df, groups + series, "No such iteration variable or run attribute")
filter_expression = props["filter"] # query scalar data into dataframe df = results.get_scalars(filter_expression, include_attrs=True, include_itervars=True, include_runattrs=True) groups = props["groups"].split(",") series = props["series"].split(",") if not groups[0] and not series[0]: print( "The Groups and Series options were not set in the dialog, inferring them from the data." ) g, s = utils.pick_two_columns(df) if not g or not s: plot.set_warning( "Please set the Groups and Series options in the dialog!") exit(1) groups, series = [g], [s] for c in groups + series: df[c] = pd.to_numeric(df[c], errors="ignore") df.sort_values(by=groups + series, axis='index', inplace=True) names = utils.get_names_for_title(df, props) df = pd.pivot_table(df, index=groups, columns=series, values='value')