Exemple #1
0
def get_data(filter):
    try:
        sc = results.get_scalars(filter, include_attrs=True)
        iv = results.get_itervars(filter)
        ra = results.get_runattrs(filter)
    except ValueError as e:
        raise chart.ChartScriptError("Error while querying results: " + str(e))

    df = pd.concat([sc, iv, ra])

    df["value"] = pd.to_numeric(df["value"], errors="ignore")
    df = pd.pivot_table(df, columns="name", index="runID", dropna=False, aggfunc=aggfunc)

    return df
Exemple #2
0
# collect parameters for query
filter_expression = props["filter"]
start_time = float(props["vector_start_time"] or -math.inf)
end_time = float(props["vector_end_time"] or math.inf)

# query vector data into a data frame
try:
    df = results.get_vectors(filter_expression,
                             include_attrs=True,
                             include_runattrs=True,
                             include_itervars=True,
                             start_time=start_time,
                             end_time=end_time)
except results.ResultQueryError as e:
    raise chart.ChartScriptError("Error while querying results: " + str(e))

if df.empty:
    raise chart.ChartScriptError("The result filter returned no data.")


def compute_histogram(row):
    values = row["vecvalue"]
    edges = utils.histogram_bin_edges(values)
    row["binvalues"], row["binedges"] = np.histogram(values, bins=edges)
    return row


df = df.apply(compute_histogram, axis=1)

# plot
# collect parameters for query
filter_expression = props["filter"]
include_fields = props["include_fields"] == "true"
xaxis_itervar = props["xaxis_itervar"]
yaxis_itervar = props["yaxis_itervar"]

# query data into a data frame
try:
    df = results.get_scalars(filter_expression,
                             include_fields=include_fields,
                             include_attrs=True,
                             include_itervars=True,
                             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.")

if not xaxis_itervar and not yaxis_itervar:
    print(
        "The X Axis and Y Axis options were not set in the dialog, inferring them from the data.."
    )
    xaxis_itervar, yaxis_itervar = utils.pick_two_columns(df)
if not xaxis_itervar or not yaxis_itervar:
    raise chart.ChartScriptError(
        "Please set both the X Axis and Y Axis options in the dialog - or neither, for automatic selection!"
    )

utils.assert_columns_exist(
Exemple #4
0
props = chart.get_properties()
utils.preconfigure_plot(props)

# collect parameters for query
filter_expression = props["filter"]
include_fields = props["include_fields"] == "true"

# query scalar data into dataframe
try:
    df = results.get_scalars(filter_expression,
                             include_fields=include_fields,
                             include_attrs=True,
                             include_itervars=True,
                             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]
# collect parameters for query
filter_expression = props["filter"]
include_fields = props["include_fields"] == "true"
xaxis_itervar = props["xaxis_itervar"]
group_by = utils.split(props["group_by"])

# query data into a data frame
try:
    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],
Exemple #6
0
    return df


def filter_for(what):
    return "(" + props["common_filter"] + ") AND (" + props[what] + ")"


xa = get_data(filter_for("xaxis_filter"))
ya = get_data(filter_for("yaxis_filter"))
iso = get_data(filter_for("iso_filter"))

cols = xa["value"].columns.values
if len(cols) != 1:
    raise chart.ChartScriptError(
        "X axis filter must result in exactly one value column, instead of " +
        str(cols))
xaxis_column = cols[0]

cols = ya["value"].columns.values
if len(cols) != 1:
    raise chart.ChartScriptError(
        "Y axis filter must result in exactly one variable, instead of: " +
        ", ".join(cols) +
        "\nTry narrowing down the filter expression to one of these by name!")
yaxis_column = cols[0]

cols = iso["value"].columns.values
if len(cols) != 1:
    raise chart.ChartScriptError(
        "Iso line filter must result in exactly one value column, instead of "