Exemple #1
0
cols = iso["value"].columns.values
if len(cols) != 1:
    raise Exception("Iso line filter must result in exactly one value column, instead of " + str(cols))
iso_column = cols[0]

try:
    df = xa.join(ya, how='outer').join(iso, how='outer')
except:
    import traceback
    traceback.print_exc()

values = df["value"]
titles = df["title"] if "title" in df else None
units = df["unit"] if "unit" in df else None

values[yaxis_column] = pd.to_numeric(values[yaxis_column], errors="ignore")

df = pd.pivot_table(values, columns=iso_column, index=xaxis_column, values=yaxis_column, dropna=False)

df.reset_index(inplace=True)
df.rename({xaxis_column: "time"}, axis="columns", inplace=True)

ideplot.plot_vectors(df)

title = props["title"] or ', '.join(titles[yaxis_column].unique())
utils.set_plot_title(title)

if units is not None:
    ideplot.set_property("Y.Axis.Title", "[" + ', '.join(units[yaxis_column].unique()) + "]")
Exemple #2
0
title, legend = utils.extract_label_columns(df)

df.sort_values(by=[l for i, l in legend], axis='index', inplace=True)

ax = plt.gca()

# This is how much of the standard deviation will give the 25th and 75th
# percentiles, assuming normal distribution.
# >>> math.sqrt(2) * scipy.special.erfinv(0.5)
coeff = 0.6744897501960817

boxes = [(r.min, r.mean - r.stddev * coeff, r.mean, r.mean + r.stddev * coeff,
          r.max) for r in df.itertuples(index=False) if r.count > 0]
utils.customized_box_plot(boxes, ax)

utils.set_plot_title(utils.make_chart_title(df, title, legend))

ax.set_xticklabels([
    utils.make_legend_label(legend, r) for r in df.itertuples(index=False)
    if r.count > 0
])

utils.make_fancy_xticklabels(ax)

plt.tight_layout()

utils.postconfigure_plot(props)

utils.export_image_if_needed(props)
utils.export_data_if_needed(df, props)
                    columns=iso_itervar,
                    index=xaxis_itervar)
print(df)
legend_cols, _ = utils.extract_label_columns(df)

p = plot if chart.is_native_chart() else plt

p.xlabel(xaxis_itervar)
p.ylabel(scalar_name)

try:
    xs = pd.to_numeric(df.index.values)
except:
    plot.set_warning(
        "The X axis itervar is not purely numeric, this is not supported yet.")
    exit(1)

for i, c in enumerate(df.columns):
    style = utils._make_line_args(props, c, df)
    p.plot(xs,
           df[c].values,
           label=iso_itervar + "=" + str(df[c].name),
           **style)

utils.set_plot_title(scalar_name + " vs. " + xaxis_itervar)

utils.postconfigure_plot(props)

utils.export_image_if_needed(props)
utils.export_data_if_needed(df, props)