# # This file demonstrates new features in gnuplot 3.6 # -1- saving contour lines as a gnuplottable file # -2- plotting a vector field on the same graph # -3- manipulating columns using the '$1,$2' syntax. # the example is taken here from Physics is the display of equipotential # lines and electrostatic field for a dipole (+q,-q) print "\n This file demonstrates new features in gnuplot 3.6" print " -1- saving contour lines as a gnuplottable file" print " -2- plotting a vector field on the same graph" print " -3- manipulating columns using the '$1,$2' syntax." print " the example is taken here from Physics is the display of equipotential" print " lines and electrostatic field for a dipole (+q,-q)" print "\n Please note that this demo runs only on x11 term, because" print " It needs to change term to table and then back to screen," print " and gnuplot currently has no way of saving current terminal." pause -1 " to continue" # r(x,y)=sqrt(x*x+y*y) v1(x,y)= q1/(r((x-x0),y)) v2(x,y)= q2/(r((x+x0),y)) # vtot(x,y)=v1(x,y)+v2(x,y) # e1x(x,y)= q1*(x-x0)/r(x-x0,y)**3 e1y(x,y)= q1*(y)/r(x-x0,y)**3 e2x(x,y)= q2*(x+x0)/r(x+x0,y)**3 e2y(x,y)= q2*(y)/r(x+x0,y)**3 etotx(x,y)=e1x(x,y)+e2x(x,y) etoty(x,y)=e1y(x,y)+e2y(x,y) enorm(x,y)=sqrt(etotx(x,y)*etotx(x,y)+etoty(x,y)*etoty(x,y)) dx1(x,y)=coef*etotx(x,y)/enorm(x,y) dy1(x,y)=coef*etoty(x,y)/enorm(x,y) dx2(x,y)=coef*etotx(x,y) dy2(x,y)=coef*etoty(x,y) # coef=.7 x0=1. q1=1 q2=-1 xmin=-10. xmax=10. ymin=-10. ymax=10. # reset set term x11 set noautoscale set xr [xmin:xmax] set yr [ymin:ymax] set isosam 31,31 set view 0, 0, 1, 1 set nosurface set contour base set cntrparam order 4 set cntrparam linear set cntrparam levels discrete -3,-2 ,-1 ,-0.5 ,-0.2 ,-0.1 ,-0.05 ,-0.02 ,0 ,0.02 ,0.05 ,0.1 ,0.2 ,0.5 ,1 ,2 ,3 set cntrparam points 5 # set label "-q" at -1,0 center set label "+q" at 1,0 center splot vtot(x,y) w l pause -1 "Now create a file with equipotential lines to continue" set term table set out "equipo2.dat" rep set out set term x11 reset plot "equipo2.dat" w l pause 0 "Now create a x/y datafile for plotting with vectors " pause 0"and display vectors parallel to the electrostatic field" pause -1 " to continue" set isosam 31,31 set term table set out "field2xy.dat" splot vtot(x,y) w l set out set term x11 set noautoscale set xr [xmin:xmax] set yr [ymin:ymax] set isosam 31,31 plot "field2xy.dat" u 1:2:(coef*dx1($1,$2)):(coef*dy1($1,$2)) w vec, \ "equipo2.dat" w l pause -1 " to exit"