void save_range(FILE *fp, AXIS_INDEX axis) { fprintf(fp, "set %srange [ ", axis_defaults[axis].name); if (axis_array[axis].set_autoscale & AUTOSCALE_MIN) { if (axis_array[axis].min_constraint & CONSTRAINT_LOWER ) { SAVE_NUM_OR_TIME(fp, axis_array[axis].min_lb, axis); fputs(" < ", fp); } putc('*', fp); if (axis_array[axis].min_constraint & CONSTRAINT_UPPER ) { fputs(" < ", fp); SAVE_NUM_OR_TIME(fp, axis_array[axis].min_ub, axis); } } else { SAVE_NUM_OR_TIME(fp, axis_array[axis].set_min, axis); } fputs(" : ", fp); if (axis_array[axis].set_autoscale & AUTOSCALE_MAX) { if (axis_array[axis].max_constraint & CONSTRAINT_LOWER ) { SAVE_NUM_OR_TIME(fp, axis_array[axis].max_lb, axis); fputs(" < ", fp); } putc('*', fp); if (axis_array[axis].max_constraint & CONSTRAINT_UPPER ) { fputs(" < ", fp); SAVE_NUM_OR_TIME(fp, axis_array[axis].max_ub, axis); } } else { SAVE_NUM_OR_TIME(fp, axis_array[axis].set_max, axis); } fprintf(fp, " ] %sreverse %swriteback", axis_array[axis].range_flags & RANGE_REVERSE ? "" : "no", axis_array[axis].range_flags & RANGE_WRITEBACK ? "" : "no"); if (axis_array[axis].set_autoscale && fp == stderr) { /* add current (hidden) range as comments */ fputs(" # (currently [", fp); if (axis_array[axis].set_autoscale & AUTOSCALE_MIN) { SAVE_NUM_OR_TIME(fp, axis_array[axis].min, axis); } putc(':', fp); if (axis_array[axis].set_autoscale & AUTOSCALE_MAX) { SAVE_NUM_OR_TIME(fp, axis_array[axis].max, axis); } fputs("] )\n", fp); } else putc('\n', fp); if (axis_array[axis].set_autoscale & (AUTOSCALE_FIXMIN)) fprintf(fp, "set autoscale %sfixmin\n", axis_defaults[axis].name); if (axis_array[axis].set_autoscale & AUTOSCALE_FIXMAX) fprintf(fp, "set autoscale %sfixmax\n", axis_defaults[axis].name); }
static void save_tics(FILE *fp, AXIS_INDEX axis) { if ((axis_array[axis].ticmode & TICS_MASK) == NO_TICS) { fprintf(fp, "set no%stics\n", axis_defaults[axis].name); return; } fprintf(fp, "set %stics %s %s scale %g,%g %smirror %s ", axis_defaults[axis].name, ((axis_array[axis].ticmode & TICS_MASK) == TICS_ON_AXIS) ? "axis" : "border", (axis_array[axis].tic_in) ? "in" : "out", axis_array[axis].ticscale, axis_array[axis].miniticscale, (axis_array[axis].ticmode & TICS_MIRROR) ? "" : "no", axis_array[axis].tic_rotate ? "rotate" : "norotate"); if (axis_array[axis].tic_rotate) fprintf(fp,"by %d ",axis_array[axis].tic_rotate); save_position(fp, &axis_array[axis].ticdef.offset, TRUE); if (axis_array[axis].manual_justify) { switch (axis_array[axis].label.pos) { case LEFT:{ fputs(" left", fp); break; } case RIGHT:{ fputs(" right", fp); break; } case CENTRE:{ fputs(" center", fp); break; } } } else fputs(" autojustify", fp); fprintf(fp, "\nset %stics ", axis_defaults[axis].name); switch (axis_array[axis].ticdef.type) { case TIC_COMPUTED:{ fputs("autofreq ", fp); break; } case TIC_MONTH:{ fprintf(fp, "\nset %smtics", axis_defaults[axis].name); break; } case TIC_DAY:{ fprintf(fp, "\nset %sdtics", axis_defaults[axis].name); break; } case TIC_SERIES: if (axis_array[axis].ticdef.def.series.start != -VERYLARGE) { SAVE_NUM_OR_TIME(fp, (double) axis_array[axis].ticdef.def.series.start, axis); putc(',', fp); } fprintf(fp, "%g", axis_array[axis].ticdef.def.series.incr); if (axis_array[axis].ticdef.def.series.end != VERYLARGE) { putc(',', fp); SAVE_NUM_OR_TIME(fp, (double) axis_array[axis].ticdef.def.series.end, axis); } break; case TIC_USER: break; } fprintf(fp, (axis_array[axis].ticdef.rangelimited)?" rangelimit":" norangelimit"); if (axis_array[axis].ticdef.font && *axis_array[axis].ticdef.font) fprintf(fp, " font \"%s\"", axis_array[axis].ticdef.font); if (axis_array[axis].ticdef.textcolor.type != TC_DEFAULT) save_textcolor(fp, &axis_array[axis].ticdef.textcolor); putc('\n', fp); if (axis_array[axis].ticdef.def.user) { struct ticmark *t; fprintf(fp, "set %stics %s ", axis_defaults[axis].name, (axis_array[axis].ticdef.type == TIC_USER) ? "" : "add"); fputs(" (", fp); for (t = axis_array[axis].ticdef.def.user; t != NULL; t = t->next) { if (t->level < 0) /* Don't save ticlabels read from data file */ continue; if (t->label) fprintf(fp, "\"%s\" ", conv_text(t->label)); SAVE_NUM_OR_TIME(fp, (double) t->position, axis); if (t->level) fprintf(fp, " %d", t->level); if (t->next) { fputs(", ", fp); } } fputs(")\n", fp); } }
void save_range(FILE *fp, AXIS_INDEX axis) { if (axis_array[axis].linked_to_primary) { fprintf(fp, "set link %c2 ", axis_name(axis)[0]); if (axis_array[axis].link_udf->at) fprintf(fp, "via %s ", axis_array[axis].link_udf->definition); if (axis_array[axis-SECOND_AXES].link_udf->at) fprintf(fp, "inverse %s ", axis_array[axis-SECOND_AXES].link_udf->definition); fputs("\n\t", fp); } if (axis < PARALLEL_AXES) fprintf(fp, "set %srange [ ", axis_name(axis)); else fprintf(fp, "set paxis %d range [ ", axis-PARALLEL_AXES+1); if (axis_array[axis].set_autoscale & AUTOSCALE_MIN) { if (axis_array[axis].min_constraint & CONSTRAINT_LOWER ) { SAVE_NUM_OR_TIME(fp, axis_array[axis].min_lb, axis); fputs(" < ", fp); } putc('*', fp); if (axis_array[axis].min_constraint & CONSTRAINT_UPPER ) { fputs(" < ", fp); SAVE_NUM_OR_TIME(fp, axis_array[axis].min_ub, axis); } } else { SAVE_NUM_OR_TIME(fp, axis_array[axis].set_min, axis); } fputs(" : ", fp); if (axis_array[axis].set_autoscale & AUTOSCALE_MAX) { if (axis_array[axis].max_constraint & CONSTRAINT_LOWER ) { SAVE_NUM_OR_TIME(fp, axis_array[axis].max_lb, axis); fputs(" < ", fp); } putc('*', fp); if (axis_array[axis].max_constraint & CONSTRAINT_UPPER ) { fputs(" < ", fp); SAVE_NUM_OR_TIME(fp, axis_array[axis].max_ub, axis); } } else { SAVE_NUM_OR_TIME(fp, axis_array[axis].set_max, axis); } fprintf(fp, " ] %sreverse %swriteback", ((axis_array[axis].range_flags & RANGE_IS_REVERSED)) ? "" : "no", axis_array[axis].range_flags & RANGE_WRITEBACK ? "" : "no"); if (axis >= PARALLEL_AXES) return; if (axis_array[axis].set_autoscale && fp == stderr) { /* add current (hidden) range as comments */ fputs(" # (currently [", fp); if (axis_array[axis].set_autoscale & AUTOSCALE_MIN) { SAVE_NUM_OR_TIME(fp, axis_array[axis].min, axis); } putc(':', fp); if (axis_array[axis].set_autoscale & AUTOSCALE_MAX) { SAVE_NUM_OR_TIME(fp, axis_array[axis].max, axis); } fputs("] )\n", fp); } else putc('\n', fp); if (fp != stderr) { if (axis_array[axis].set_autoscale & (AUTOSCALE_FIXMIN)) fprintf(fp, "set autoscale %sfixmin\n", axis_name(axis)); if (axis_array[axis].set_autoscale & AUTOSCALE_FIXMAX) fprintf(fp, "set autoscale %sfixmax\n", axis_name(axis)); } }