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)
Example #3
0
                             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")
Example #4
0
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')