From 0f26eb3f2005f9bf2ffa237c023491c7427f4b31 Mon Sep 17 00:00:00 2001 From: Greg Friedland Date: Mon, 18 Feb 2019 19:24:04 -0800 Subject: [PATCH] update jaccard comp plot --- .../tests/jaccard_comparison_plot.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 python_bindings/tests/jaccard_comparison_plot.py diff --git a/python_bindings/tests/jaccard_comparison_plot.py b/python_bindings/tests/jaccard_comparison_plot.py new file mode 100644 index 0000000..02a8117 --- /dev/null +++ b/python_bindings/tests/jaccard_comparison_plot.py @@ -0,0 +1,39 @@ +import pandas as pd +import sys +import statsmodels.api as sm +from plotnine import ggplot, geom_point, aes, stat_smooth, geom_line, scale_x_log10, \ + scale_y_log10, theme, element_text, ylim + + +if __name__ == "__main__": + df = pd.read_csv(sys.argv[1]) + df["space_nbits"] = df.space.astype(str) + "_" + df.nbits.astype(str) + df.memory = df.memory.astype(float) + df.time = df.time.astype(float) + print(df.info()) + + for col in ["time", "memory"]: + funcs = [] + for space_nbits in df.space_nbits.unique(): + sub_df = df.loc[df.space_nbits == space_nbits] + model = sm.OLS(sub_df.num_elems, sm.add_constant(sub_df[col])) + params = model.fit().params + func = lambda x: params.const + x * getattr(params, col) + funcs.append(func) + + p = (ggplot(df, aes("num_elems", col, color="space_nbits")) + + geom_point() + geom_line() + + scale_x_log10(limits=[10000,10000000]) + + scale_y_log10(limits=[3,10000]) + + theme(axis_text_x=element_text(rotation=90, hjust=1))) + p.save(filename=col + ".png", height=5, width=5, units='in', dpi=300) + + # p = ggplot(aes(x="num_elems", y=col, color="space_nbits"), data=df) + geom_line() + geom_point() + stat_function(fun=funcs[0]) + # p.make() + + # fig = plt.gcf() + # ax = plt.gca() + # plt.gca().set_xscale('log') + # plt.gca().set_yscale('log') + # + # ggsave(plot=p, filename=col + ".png")