forked from pool/gnuplot
287 lines
8.7 KiB
Diff
287 lines
8.7 KiB
Diff
--- demo/ellipse.dem
|
|
+++ demo/ellipse.dem 2012-03-15 11:05:54.000000000 +0000
|
|
@@ -9,6 +9,7 @@ if ((GPVAL_VERSION == 4.3 || GPVAL_VERSI
|
|
print "This copy of gnuplot was built without support for placing ellipses\n" ; \
|
|
exit ;
|
|
|
|
+random="`mktemp /tmp/random.XXXXXX`
|
|
|
|
unset key
|
|
set xrange [-8:8]
|
|
@@ -27,7 +28,7 @@ set object 1 ellipse center 1.5,1.0 size
|
|
set obj 2 ellipse center 1.5, 1 size 6, 12 angle 20 front fs empty bo 3
|
|
|
|
A = pi/9.
|
|
-plot 'random.tmp' using (1.5 + $1*cos(A)-2.*$2*sin(A)):(1.0 + $1*sin(A)+2.*$2*cos(A)) with dots
|
|
+plot random using (1.5 + $1*cos(A)-2.*$2*sin(A)):(1.0 + $1*sin(A)+2.*$2*cos(A)) with dots
|
|
|
|
pause -1 "Hit return to continue"
|
|
|
|
--- demo/fit.dem
|
|
+++ demo/fit.dem 2012-03-15 11:05:54.000000000 +0000
|
|
@@ -5,9 +5,11 @@
|
|
print "Some examples how data fitting using nonlinear least squares fit"
|
|
print "can be done."
|
|
print ""
|
|
+logfile = "`mktemp /tmp/fit.log.XXXXXX`"
|
|
pause -1 "first plotting the pure data set (-> return)"
|
|
|
|
reset
|
|
+set fit logfile logfile
|
|
set title 'data for first fit demo'
|
|
set xlabel "Temperature T [deg Cels.]"
|
|
set ylabel "Density [g/cm3]"
|
|
@@ -162,7 +164,7 @@ pause -1 "(-> return)"
|
|
# Must provide an error estimate for a 3d fit. Use constant 1
|
|
fit f(x,y) 'soundvel.dat' using 1:-2:2:(1) via 'sound.par'
|
|
#create soundfit.par, reading from sound.par and updating values
|
|
-update 'sound.par' 'soundfit.par'
|
|
+update 'sound.par' "`mktemp /tmp/soundfit.par.XXXXXX`"
|
|
print ""
|
|
pause -1 "(-> return)"
|
|
set title 'pseudo-3d multi-branch fit to velocity data'
|
|
@@ -251,6 +253,7 @@ print ""
|
|
pause -1 "Hit return to continue"
|
|
|
|
reset
|
|
+set fit logfile logfile
|
|
set xlabel 'x'
|
|
set ylabel 'y'
|
|
set zlabel 'z'
|
|
@@ -340,3 +343,4 @@ print "from time to time!"
|
|
print ""
|
|
pause -1 "Done with fitting demo (-> return)"
|
|
reset
|
|
+set fit logfile logfile
|
|
--- demo/poldat.dem
|
|
+++ demo/poldat.dem 2012-03-15 11:05:54.000000000 +0000
|
|
@@ -11,7 +11,7 @@ unset grid
|
|
unset polar
|
|
set title "Primitive Smith Chart"
|
|
unset key
|
|
-set xlabel "Impedance or Admittance Coordinates"
|
|
+set xlabel "Impedance or Admittance Coordinates" offset 12,-1
|
|
set para
|
|
set rrange [-0 : 10]
|
|
set trange [-pi : pi]
|
|
--- demo/random.dem
|
|
+++ demo/random.dem 2012-03-15 11:08:49.000000000 +0000
|
|
@@ -46,7 +46,8 @@ print "this case is zero, i.e. a circle.
|
|
print ""
|
|
nsamp = 50
|
|
# Generate N random data points.
|
|
-set print "random.tmp"
|
|
+random="`mktemp /tmp/random.XXXXXX`"
|
|
+set print random
|
|
do for [i=1:nsamp] {
|
|
print sprintf("%8.5g %8.5g", invnorm(rand(0)), invnorm(rand(0)))
|
|
}
|
|
@@ -73,7 +74,7 @@ set vrange [-3:3]
|
|
set ticslevel 0
|
|
set isosamples 30
|
|
splot u,v,( 1/(2*pi) * exp(-0.5 * (u**2 + v**2)) ) with line lc rgb "black", \
|
|
- "random.tmp" using 1:2:(-0.2) with points pointtype 7 lc rgb "black"
|
|
+ random using 1:2:(-0.2) with points pointtype 7 lc rgb "black"
|
|
pause -1 "Hit return to continue"
|
|
unset contour
|
|
unset parametric
|
|
@@ -96,7 +97,7 @@ xlow = -3.0
|
|
xhigh = 3.0
|
|
scale = (binwidth/(xhigh-xlow))
|
|
# Generate N random data points.
|
|
-set print "random.tmp"
|
|
+set print random
|
|
do for [i=1:nsamp] {
|
|
print sprintf("%8.5g %8.5g", invnorm(rand(0)), (1.0*scale/nsamp))
|
|
}
|
|
@@ -110,7 +111,7 @@ set grid
|
|
set xrange [-3:3]
|
|
set yrange [0:0.45]
|
|
bin(x) = (1.0/scale)*floor(x*scale)
|
|
-plot "random.tmp" using (bin($1)):2 smooth frequency with steps \
|
|
+plot random using (bin($1)):2 smooth frequency with steps \
|
|
title "scaled bin frequency", \
|
|
normal(x,0,1) with lines title "Gaussian p.d.f."
|
|
pause -1 "Hit return to continue"
|
|
@@ -126,7 +127,7 @@ print ""
|
|
reset
|
|
nsamp = 3000
|
|
# Generate N random data points.
|
|
-set print "random.tmp"
|
|
+set print random
|
|
do for [i=1:nsamp] {
|
|
print sprintf("%8.5g %8.5g %8.5g", invnorm(rand(0)), invnorm(rand(0)), invnorm(rand(0)))
|
|
}
|
|
@@ -150,7 +151,7 @@ set zzeroaxis lt -1
|
|
set view 68, 28, 1.4, 0.9
|
|
tstring(n) = sprintf("Gaussian 3D cloud of %d random samples\n", n)
|
|
set title tstring(nsamp) offset graph 0.15, graph -0.33
|
|
-splot "random.tmp" every :::::0 with dots
|
|
+splot random every :::::0 with dots
|
|
if (!oneplot) pause -1 "Hit return to continue"
|
|
|
|
unset parametric
|
|
@@ -170,7 +171,7 @@ scale = (binwidth/(xhigh-xlow))
|
|
set xrange [0:xhigh]
|
|
set yrange [0:0.65]
|
|
bin(x) = (1.0/scale)*floor(x*scale)
|
|
-plot "random.tmp" using (bin(sqrt($1**2+$2**2+$3**2))):(1.0*scale/nsamp) every :::::0 smooth frequency with steps \
|
|
+plot random using (bin(sqrt($1**2+$2**2+$3**2))):(1.0*scale/nsamp) every :::::0 smooth frequency with steps \
|
|
title "scaled bin frequency", \
|
|
maxwell(x, 1/sqrt(2)) with lines title "Maxwell p.d.f."
|
|
#
|
|
--- demo/simple.dem
|
|
+++ demo/simple.dem 2012-03-15 11:05:54.000000000 +0000
|
|
@@ -7,12 +7,11 @@
|
|
# gnuplot> load 'simple.dem'
|
|
#
|
|
set key left box
|
|
-set samples 50
|
|
+set samples 400
|
|
plot [-10:10] sin(x),atan(x),cos(atan(x))
|
|
pause -1 "Hit return to continue"
|
|
|
|
set key right nobox
|
|
-set samples 100
|
|
plot [-pi/2:pi] cos(x),-(sin(x) > sin(x+1) ? sin(x) : sin(x+1))
|
|
pause -1 "Hit return to continue"
|
|
|
|
--- demo/stringvar.dem
|
|
+++ demo/stringvar.dem 2012-03-15 11:05:54.000000000 +0000
|
|
@@ -1,7 +1,8 @@
|
|
#
|
|
# Miscellaneous neat things you can do using the string variables code
|
|
#
|
|
-set print "stringvar.tmp"
|
|
+stringvar="`mktemp /tmp/stringvar.XXXXXX`"
|
|
+set print stringvar
|
|
print ""
|
|
print "Exercise substring handling"
|
|
print ""
|
|
@@ -24,7 +25,7 @@ print "(foo.foo)[2:2]= ",(foo.foo)[2:2]
|
|
print ""
|
|
unset print
|
|
|
|
-set label 1 system("cat stringvar.tmp") at graph 0.1, graph 0.9
|
|
+set label 1 system(sprintf("cat %s", stringvar)) at graph 0.1, graph 0.9
|
|
unset xtics
|
|
unset ytics
|
|
set yrange [0:1]
|
|
@@ -33,7 +34,7 @@ plot 0
|
|
pause -1 "Hit return to continue"
|
|
|
|
|
|
-set print "stringvar.tmp"
|
|
+set print stringvar
|
|
print "Exercise string handling functions"
|
|
print ""
|
|
print "foo = ",foo
|
|
@@ -62,7 +63,7 @@ if (strlen(foo) != 245) print "sprintf o
|
|
print ""
|
|
|
|
unset print
|
|
-set label 1 system("cat stringvar.tmp") at graph 0.1, graph 0.9
|
|
+set label 1 system(sprintf("cat %s", stringvar)) at graph 0.1, graph 0.9
|
|
unset xtics
|
|
unset ytics
|
|
set yrange [0:1]
|
|
--- demo/vector.dem
|
|
+++ demo/vector.dem 2012-03-15 11:05:54.000000000 +0000
|
|
@@ -62,19 +62,21 @@ splot vtot(x,y) w l
|
|
print "Now create a file with equipotential lines"
|
|
pause -1 "Hit return to continue"
|
|
|
|
-set table "equipo2.tmp"
|
|
+equipo2="`mktemp /tmp/equipo2.XXXXXX`"
|
|
+set table equipo2
|
|
replot
|
|
unset table
|
|
reset
|
|
pause 0
|
|
|
|
-plot "equipo2.tmp" w l
|
|
+plot equipo2 w l
|
|
print "Now create a x/y datafile for plotting with vectors "
|
|
print "and display vectors parallel to the electrostatic field"
|
|
pause -1 "Hit return to continue"
|
|
set isosam 31,31
|
|
|
|
-set table "field2xy.tmp"
|
|
+field2xy="`mktemp /tmp/field2xy.XXXXXX`"
|
|
+set table field2xy
|
|
splot vtot(x,y) w l
|
|
unset table
|
|
pause 0
|
|
@@ -84,8 +86,8 @@ set xr [xmin:xmax]
|
|
set yr [ymin:ymax]
|
|
set isosam 31,31
|
|
set key under Left reverse
|
|
-plot "field2xy.tmp" u 1:2:(coef*dx1($1,$2)):(coef*dy1($1,$2)) w vec, \
|
|
- "equipo2.tmp" w l
|
|
+plot field2xy u 1:2:(coef*dx1($1,$2)):(coef*dy1($1,$2)) w vec, \
|
|
+ equipo2 w l
|
|
pause -1 "Hit return to continue"
|
|
|
|
reset
|
|
--- src/show.c
|
|
+++ src/show.c 2012-03-15 11:05:54.000000000 +0000
|
|
@@ -1074,6 +1074,15 @@ show_version(FILE *fp)
|
|
p /* type "help seeking-assistance" */
|
|
);
|
|
|
|
+#ifdef GNUPLOT_LIB_DEFAULT
|
|
+ {
|
|
+ struct stat st;
|
|
+ if ((stat(GNUPLOT_LIB_DEFAULT, &st) == 0) && S_ISDIR(st.st_mode)) {
|
|
+ fprintf(fp, "%s\n%s\tType `load \"all.dem\"` to display a large number of examples.", p, p);
|
|
+ fprintf(fp, "\n%s\tThey are located at %s/*\n%s\n", p, GNUPLOT_LIB_DEFAULT, p);
|
|
+ }
|
|
+ }
|
|
+#endif
|
|
|
|
/* show version long */
|
|
if (almost_equals(c_token, "l$ong")) {
|
|
--- src/variable.c
|
|
+++ src/variable.c 2012-03-15 11:05:54.000000000 +0000
|
|
@@ -37,7 +37,10 @@ static char *RCSid() { return RCSid("$Id
|
|
/* The Death of Global Variables - part one. */
|
|
|
|
#include <string.h>
|
|
-
|
|
+#include <stdio.h>
|
|
+#include <sys/types.h>
|
|
+#include <sys/stat.h>
|
|
+#include <unistd.h>
|
|
#include "variable.h"
|
|
|
|
#include "alloc.h"
|
|
@@ -98,6 +101,17 @@ loadpath_handler(int action, char *path)
|
|
if (!loadpath)
|
|
{
|
|
char *envlib = getenv("GNUPLOT_LIB");
|
|
+#ifdef GNUPLOT_LIB_DEFAULT
|
|
+ char *defenvlib = (char*)0;
|
|
+ struct stat st;
|
|
+ if ((stat(GNUPLOT_LIB_DEFAULT, &st) == 0) && S_ISDIR(st.st_mode)) {
|
|
+ if (envlib) {
|
|
+ if (asprintf(&defenvlib, "%s:%s", envlib, GNUPLOT_LIB_DEFAULT) > 0)
|
|
+ envlib = defenvlib;
|
|
+ } else
|
|
+ envlib = GNUPLOT_LIB_DEFAULT;
|
|
+ }
|
|
+#endif /* GNUPLOT_LIB_DEFAULT */
|
|
if (envlib) {
|
|
int len = strlen(envlib);
|
|
loadpath = gp_strdup(envlib);
|
|
@@ -106,6 +120,10 @@ loadpath_handler(int action, char *path)
|
|
/* convert all PATHSEPs to \0 */
|
|
PATHSEP_TO_NUL(loadpath);
|
|
} /* else: NULL = empty */
|
|
+#ifdef GNUPLOT_LIB_DEFAULT
|
|
+ if (defenvlib)
|
|
+ free(defenvlib);
|
|
+#endif /* GNUPLOT_LIB_DEFAULT */
|
|
} /* else: already initialised; int_warn (?) */
|
|
/* point to env portion of loadpath */
|
|
envptr = loadpath;
|