Browse Source

gnuplot enhancements (for Windows)

pre-master-46
h_vogt 16 years ago
parent
commit
46e6df66ce
  1. 3
      ChangeLog
  2. 50
      src/frontend/plotting/gnuplot.c

3
ChangeLog

@ -1,3 +1,6 @@
2009-12-30 Holger Vogt
* gnuplot.c: some additions
2009-12-29 Holger Vogt
* ngproc2mod.c: patch by R. Larice
gnuplot.c filename arrays enlarged

50
src/frontend/plotting/gnuplot.c

@ -28,9 +28,9 @@ ft_gnuplot(double *xlims, double *ylims, char *filename, char *title, char *xlab
FILE *file, *file_data;
struct dvec *v, *scale = NULL;
double xval, yval;
int i, numVecs, linewidth;
int i, numVecs, linewidth, err;
bool xlog, ylog, nogrid, markers;
char buf[BSIZE_SP], pointstyle[BSIZE_SP], *text;
char buf[BSIZE_SP], pointstyle[BSIZE_SP], *text, plotstyle[BSIZE_SP];
char filename_data[128];
char filename_plt[128];
@ -112,7 +112,10 @@ ft_gnuplot(double *xlims, double *ylims, char *filename, char *title, char *xlab
tfree(text);
}
if (!nogrid) {
fprintf( file, "set grid\n" );
if (linewidth > 1)
fprintf( file, "set grid lw %d \n" , linewidth );
else
fprintf( file, "set grid\n" );
}
if (xlog) {
fprintf( file, "set logscale x\n" );
@ -142,21 +145,21 @@ ft_gnuplot(double *xlims, double *ylims, char *filename, char *title, char *xlab
fprintf( file, "#set ytics 1\n" );
fprintf( file, "#set y2tics 1\n" );
fprintf( file, "set style line 1 lw %d\n", linewidth );
if (linewidth > 1)
fprintf( file, "set border lw %d\n", linewidth );
/* TODO
if (plottype == PLOT_COMB) {
fprintf( file, "BarGraph: True\n" );
fprintf( file, "NoLines: True\n" );
strcpy(plotstyle, "boxes");
} else if (plottype == PLOT_POINT) {
if (markers) {
fprintf( file, "Markers: True\n" );
if (markers) {
// fprintf( file, "Markers: True\n" );
} else {
// fprintf( file, "LargePixels: True\n" );
}
strcpy(plotstyle, "points");
} else {
fprintf( file, "LargePixels: True\n" );
strcpy(plotstyle, "lines");
}
fprintf( file, "NoLines: True\n" );
}
*/
/* Open the output gnuplot data file. */
if (!(file_data = fopen(filename_data, "w"))) {
@ -173,11 +176,19 @@ ft_gnuplot(double *xlims, double *ylims, char *filename, char *title, char *xlab
if (v->v_name) {
i = i + 2;
if (i > 2) fprintf(file, ",\\\n");
fprintf(file, "\'%s\' using %d:%d with lines title \"%s\" ", filename_data, i-1, i, v->v_name);
fprintf(file, "\'%s\' using %d:%d with %s lw %d title \"%s\" ",
filename_data, i-1, i, plotstyle, linewidth, v->v_name);
}
}
fprintf( file, "\n");
fprintf (file, "set terminal postscript eps color\nset out \'%s.eps\'\nreplot\nset term pop", filename);
fprintf (file, "set terminal push\n");
fprintf (file, "set terminal postscript eps color\n");
fprintf (file, "set out \'%s.eps\'\n", filename);
fprintf (file, "replot\n");
fprintf (file, "set term pop\n");
fprintf (file, "replot\n");
(void) fclose( file );
/* Write out the data and setup arrays */
for ( i = 0; i < scale->v_length; i++ ) {
@ -195,15 +206,16 @@ ft_gnuplot(double *xlims, double *ylims, char *filename, char *title, char *xlab
fprintf( file_data, "\n");
}
(void) fclose( file );
(void) fclose( file_data );
#if defined(__MINGW32__) || defined(_MSC_VER)
(void) sprintf( buf, "wgnuplot -persistent %s", filename_plt );
// (void) sprintf( buf, "wgnuplot %s -", filename_plt );
(void) sprintf( buf, "start /B wgnuplot %s -" , filename_plt );
_flushall();
#else
(void) sprintf( buf, "gnuplot %s &", filename );
(void) sprintf( buf, "gnuplot %s - &", filename_plt );
#endif
(void) system( buf );
err = system( buf );
return;

Loading…
Cancel
Save