void libgretl_session_cleanup (int mode) { gretl_saved_objects_cleanup(); /* trash dataset-related items */ gretl_transforms_cleanup(); gretl_lists_cleanup(); gretl_tests_cleanup(); gretl_plotx(NULL, OPT_NONE); if (mode != SESSION_CLEAR_DATASET) { destroy_user_vars(); } }
static int leverage_plot (const MODEL *pmod, gretl_matrix *S, DATASET *dset) { FILE *fp; const double *obs = NULL; int t, err = 0; fp = open_plot_input_file(PLOT_LEVERAGE, 0, &err); if (err) { return err; } if (dataset_is_time_series(dset)) { obs = gretl_plotx(dset, OPT_NONE); if (obs == NULL) { if (fp != NULL) { fclose(fp); } return 1; } } gretl_push_c_numeric_locale(); fputs("set size 1.0,1.0\nset multiplot\nset size 1.0,0.48\n", fp); fputs("set xzeroaxis\n", fp); fputs("set nokey\n", fp); if (obs != NULL) { leverage_x_range(pmod->t1, pmod->t2, obs, fp); } else { fprintf(fp, "set xrange [%g:%g]\n", pmod->t1 + 0.5, pmod->t2 + 1.5); } /* upper plot: leverage factor */ fputs("set origin 0.0,0.50\n", fp); gnuplot_missval_string(fp); fputs("set yrange [0:1]\n", fp); fprintf(fp, "set title '%s'\n", _("leverage")); fputs("plot \\\n'-' using 1:2 w impulses\n", fp); for (t=pmod->t1; t<=pmod->t2; t++) { double h = gretl_matrix_get(S, t - pmod->t1, 0); if (na(h)) { if (obs != NULL) { fprintf(fp, "%g ?\n", obs[t]); } else { fprintf(fp, "%d ?\n", t + 1); } } else { if (obs != NULL) { fprintf(fp, "%g %g\n", obs[t], h); } else { fprintf(fp, "%d %g\n", t + 1, h); } } } fputs("e\n", fp); /* lower plot: influence factor */ fputs("set origin 0.0,0.0\n", fp); gnuplot_missval_string(fp); fputs("set yrange [*:*]\n", fp); fprintf(fp, "set title '%s'\n", _("influence")); fputs("plot \\\n'-' using 1:2 w impulses\n", fp); for (t=pmod->t1; t<=pmod->t2; t++) { double f = gretl_matrix_get(S, t - pmod->t1, 1); if (na(f)) { if (obs != NULL) { fprintf(fp, "%g ?\n", obs[t]); } else { fprintf(fp, "%d ?\n", t + 1); } } else { if (obs != NULL) { fprintf(fp, "%g %g\n", obs[t], f); } else { fprintf(fp, "%d %g\n", t + 1, f); } } } fputs("e\n", fp); fputs("unset multiplot\n", fp); gretl_pop_c_numeric_locale(); return finalize_plot_input_file(fp); }