Exemplo n.º 1
0
void
plot_setcur(char *name)
{
    struct plot *pl;

    if (cieq(name, "new")) {
        pl = plot_alloc("unknown");
        pl->pl_title = copy("Anonymous");
        pl->pl_name = copy("unknown");
        pl->pl_date = copy(datestring());
        plot_new(pl);
        plot_cur = pl;
        return;
    }
    for (pl = plot_list; pl; pl = pl->pl_next)
        if (plot_prefix(name, pl->pl_typename))
            break;
    if (!pl) {
        fprintf(cp_err, "Error: no such plot named %s\n", name);
        return;
    }
    /* va: we skip cp_kwswitch, because it confuses the keyword-tree management for
     *     repeated op-commands. When however cp_kwswitch is necessary for other
     *     reasons, we should hold the original keyword table pointer in an
     *     permanent variable, since it will lost here, and can never tfree'd.
     if (plot_cur)
     {
     plot_cur->pl_ccom = cp_kwswitch(CT_VECTOR, pl->pl_ccom);
     }
    */
    plot_cur = pl;
}
Exemplo n.º 2
0
int main(int argc, const char **argv)
{
    plot_type *item;
    plot_dataset_type *d;
    PLFLT *x, *y;
    double x_max, y_max;
    int N;
    const char *kw = argv[1];

    if (argc < 2) {
	fprintf(stderr, "Error: give keyword as argument!\n");
	exit(EXIT_FAILURE);
    }

    item = plot_alloc();
    plot_set_window_size(item, 1152, 768);
    plot_initialize(item, "png", "punqs3.png");

    {
	char str[PATH_MAX];
	int i, k;
	int len = 2;
	int interval[len][2];

	interval[0][0] = 1;
	interval[0][1] = 10;
	interval[1][0] = 50;
	interval[1][1] = 60;

	for (i = 0; i < len; i++) {
	    for (k = interval[i][0]; k <= interval[i][1]; k++) {
		snprintf(str, PATH_MAX,
			 "/h/masar/EnKF_PUNQS3/PUNQS3/Original/Realizations/PUNQS3_Realization_%d/PUNQS3_%d.DATA",
			 k, k);
		plot_summary_collect_data(&x, &y, &N, str, kw);
		d = plot_dataset_alloc(false);
		plot_dataset_set_data(d, x, y, N, BLUE, LINE);
		plot_dataset_add(item, d);
		util_safe_free(x);
		util_safe_free(y);

		snprintf(str, PATH_MAX,
			 "/d/proj/bg/enkf/EnKF_PUNQS3/enkf_runs/member_%03d/PUNQS3_%04d.DATA",
			 k, k);
		d = plot_dataset_alloc( false );
		plot_summary_collect_data(&x, &y, &N, str, kw);
		plot_dataset_set_data(d, x, y, N, RED, LINE);
		plot_dataset_add(item, d);
		util_safe_free(x);
		util_safe_free(y);
	    }
	}
    }

    d = plot_dataset_alloc();
    plot_summary_collect_data(&x, &y, &N,
			      "/d/proj/bg/enkf/EnKF_PUNQS3/PUNQS3/Original/PUNQS3.DATA",
			      kw);
    plot_dataset_set_data(d, x, y, N, BLACK, POINT);
    plot_dataset_add(item, d);

    util_safe_free(x);
    util_safe_free(y);

    plot_set_labels(item, "Days", kw, "PUNQS3", BLACK);
    plot_get_extrema(item, &x_max, &y_max, NULL, NULL);
    plot_set_viewport(item, 0, x_max, 0, y_max);
    plot_data(item);
    plot_free(item);
}