{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Simple plots\n", "

By Edward Sternin, Brock University

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is an introductory notebook to various ways of plotting and analyzing experimental data, as appropriate to second-year Physics majors. Feel free to choose your own preferred package, but mastering one of the tools in this selection is strongly recommended, as the demands on the software will become more significant in later years of the program, and so other packages (notably, excel) will not have sufficient capabilities. Choose a package that has \"long legs\". \n", "

\n", "A large number of software packages exist, and personal preferences play a great role in selecting which one will end up as your favourite go-to tool. Here we will restrict ourselves to a comparison of a few packages. The criteria for selecting them are simple:\n", "

\n", "Our selection: extrema (or its predecessor, physica), gnuplot, and octave (a free alternative to Matlab). All of these are inherently interactive programs, and so they are normally used through a command-line interface (CLI) or their own native Graphics User Interface (GUI). In this notebook, we will emulate that behaviour by using scripts, which is actually an advanced use mode for most programs. To get a true feel for the programs, please attempt to use their native interfaces, guided by the sample command selections below.\n", "

\n", "From a wide field of significant competitors not included here are Maple (a commercial package) and grace (a.k.a xmgrace), and Mac-world's Igor. These are reasonable alternatives so if you have significant skills in their scripting, they will be appropriate to continue to use, though they do not satisfy all of the selection criteria.\n", "

\n", "To begin with, configure jupyter's work directory and import some libraries that enable us to display graphics files in this notebook." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%%bash\n", "WORKDIR=~/5P10/Lab2\n", "# if the directory exists, remove it and all its contents\n", "if [ -d $WORKDIR ]; then\n", " rm -rf $WORKDIR\n", "fi\n", "# and re-create it as a blank work directory\n", "mkdir -p $WORKDIR" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/home/esternin/5P10/Lab2\n" ] }, { "data": { "text/plain": [ "'/home/esternin/5P10/Lab2'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# now tell jupyter where to work\n", "%cd ~/5P10/Lab2\n", "%pwd" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# import necessary libraries\n", "from IPython.display import display\n", "from PIL import Image" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Getting the data into the program\n", "The two basic ways are: direct entry, where you embed the data in the script, and external file read. The former has the advantage of portability (one file to keep track of for any project), the latter has the advantage of compactness (a small script acting on a series of potentially large data files).\n", "

\n", "All three programs allow direct entry of data, with minor syntactic differences:\n", "

\n", "

\n", "
physica, direct entry:\n", "
\n", " x=[1:8]
\n", " y=[0.05;0.10;0.14;0.19;0.25;0.30;0.34;0.40]
\n", " dy=[0.02;0.07;0.01;0.04;0.05;0.10;0.02;0.04]
\n", " set xlabel `Time, s'
\n", " set ylabel `Distance, m'
\n", " set pchar -12
\n", " graph x,y,dy\n", "
\n", "
\n", "
\n", "
gnuplot, direct entry:\n", "
\n", " \\$DATA << EOD
\n", " 1 0.05 0.02
\n", " 2 0.10 0.07
\n", " 3 0.14 0.01
\n", " 4 0.19 0.04
\n", " 5 0.25 0.05
\n", " 6 0.30 0.10
\n", " 7 0.34 0.02
\n", " 8 0.40 0.04
\n", " EOD
\n", "
\n", " set xlabel 'Time, s'
\n", " set ylabel 'Distance, m'
\n", " plot \\$DATA with errorbars pt 6\n", "
\n", "
\n", "
\n", "
octave/matlab, direct entry:\n", "
\n", " x=linspace(1,8,8);
\n", " y=[0.05 0.10 0.14 0.19 0.25 0.30 0.34 0.40];
\n", " dy=[0.02 0.07 0.01 0.04 0.05 0.10 0.02 0.04];
\n", " plot(x,y,'go');
\n", " xlabel(\"Time, s\");
\n", " ylabel(\"Distance, m\");
\n", "
\n", "
\n", "
\n", "
\n", "

\n", "To demonstrate the plots within this notebook, we need to communicate to the external program, like extrema, or load on-the-fly a kernel magic that will enable execution of an external program directly embedded in this python-based notebook.\n", "

\n", "We will default all of the settings that control the appearance of the graphs, for simplicity. All of these programs can produce publication-quality plots through a series of adjustments to their appearance. This will be addressed in the following sections." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## eXtrema\n", "\n", "An experimental eXtrema kernel exists, but it is not yet installed system-wide, so each user must install it into their own file space. A separate jupyter notebook shows how to do it. That notebook needs to be run only once, and then this notebook's kernel needs to be restarted, to read in the newly added eXtrema kernel. If you have already done that at some point, the eXtrema kernel should included in the drop-down list of kernels under the Kernel menu above. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "total 16\r\n", "-rw-r--r-- 1 esternin LinuxEmployees 5406 Sep 12 10:17 extrema_kernel.py\r\n", "-rw-r--r-- 1 esternin LinuxEmployees 234 Sep 12 10:17 kernel.json\r\n", "drwxr-xr-x 2 esternin LinuxEmployees 4096 Oct 15 14:03 \u001b[0m\u001b[38;5;27m__pycache__\u001b[0m/\r\n" ] } ], "source": [ "ls -l /work/extrema_kernel/" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import sys\n", "sys.path.append('/work/extrema_kernel')\n", "import extrema_kernel" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once extrema kernel is available in the drop-down menu of kernels, you do not need to repeat the above and the line magic %eXtrema and cell magic %%eXtrema should be available. Note that this kernel uses a simplified batch-mode version of extrema which may not have some commands implemented yet. The kernel returns an image file which we can then show within this notebook." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "image/png": "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1ap1Fe60bt260tLSlJSUsLCwoKCg6OjoVatWnThxYubMmVqXpnfPPPNM9/V7q6qqxo0bp3VpAzF79uzq6urly5dHRkYGBQVFRkYuW7bs2LFjPvpOa2hoEPfdnFxbr776akFBQXJyclhYWGBg4NixYx966KGKiorvf//7WpfWL4Yu37yrLQAAbsGIEACgawQhAEDXCEJA7YUXXjD0wxNPPPHcc88ZDIaf/exnWpcMYOAIQgCArjFZBriJtrY2ZUGy2traSZMmaV0OADdjRAgA0DWCEBg41XeEmzZtMhgM+/btO3ny5H333Td8+PBRo0YtXrz40qVLInLx4sXFixePHDly2LBhCxYsOH78uOq3HT9+fPHixWPGjAkODh4/fvyPf/zjAd/O7fjx49///vfHjBkzZMiQUaNGLViw4K233vomWwr4M62v6AcGu9bWVmVnqa2tVT2Vk5MjIqtXr1Yebty4UUSys7NDQkKc97IpU6bU1tZGREQ4N44YMcL5puS7d+/uvmxxREREVVWVqwVXV1c77lvkLDs7+5v8fwD8FSNCwM1ycnImT55cXl5ut9tLSkosFktNTc2dd94ZERFx5MgRu91+5MiRiIiI5uZmZVViETl58uTjjz/e2dn55JNP1tTUtLa2njp1Kj09vaGhIT093XmZ6f5YsWKFzWbLysqqq6trb29XXshoNG7ZsuXatWse2GLAtxGEgJsFBQUVFxfPnj3bZDItWLDgoYceEpGWlpbS0tK5c+eaTKa5c+dmZWWJSHV1tfIjubm5ra2tK1as+M///M9//Md/DA4Onjp16rvvvhsfH19bW6vcKLH/Tpw4ISJPP/307bffPmTIkOHDh//gBz+4du3atWvXTCaTuzcX8HkEIeBmiYmJzrfWmjJliojEx8ePGTPG0RgVFSUiNptNeVhcXCwi3VcuVkK0tLTUpQKUm/MtXbr0d7/73VdffTWATQB0hSAE3EwJOQez2Szd7hzrfIP4xsZG5T7G06dPV12z/+STT4rI2bNnXSpg9erVInLw4MF77703LCxs/vz5//Ef//H5558PdIMAP0cQAm6mmimj6D4RxsExLhxwB5WHH344Pz9fGYl2dnYePnx45cqVkZGRzz//vEu/B9AJghBws4AA13YrZcgYEBDQ242aT5486WoNDz744OnTp6uqqp599tmkpKSgoKD29vY1a9Z8+OGHrv4qwO8RhIDGxowZY7FYbty4UVlZ6d7f/J3vfGfdunUffvjh5cuX77zzThFx3LYegANBCGgvOTlZRJ5++mlV+w9/+EODwfDTn/60/7/qr3/9q8FgGD9+/PXr1x2Nw4cPj4+PF9dHq4AesFcA2luzZk1gYODhw4eVU5odHR3nz5//yU9+snPnTqPRqEyZ6adJkybNmjWrrq4uIyPj+PHjbW1tX3zxxZtvvrl9+3YRWbhwocc2AvBVBCGgvdmzZ7/88ssBAQF79+6dNm1aUFBQVFSU0vLGG284r/Q9bNgwg8Hwzjvv9PHbdu7cGRISUlBQEBsbazQaw8PDH3nkEbvdvmzZsvnz53t+awAfQxACg8ITTzxx9OjR9PT00aNHBwYGhoeHp6WllZWVPfjgg67+qm9/+9vl5eVLly697bbbAgMDw8LC5s2bt2fPnldffdUTlQO+jtswAT7m9ttvf+2117773e9qXQjgJxgRAr7kV7/6VVNTU1xcnNaFAP6DIAR8yd69e/fs2TNy5EitCwH8B6dGAQC6xogQAKBrBCEAQNcIQgCArv1/L/vikHxOWvIAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "image/png": { "height": 480, "width": 640 } } }, "output_type": "display_data" } ], "source": [ "%%eXtrema\n", "x=[1:8]\n", "y=[0.05;0.10;0.14;0.19;0.25;0.30;0.34;0.40]\n", "dy=[0.02;0.07;0.01;0.04;0.05;0.10;0.02;0.04]\n", "\n", "set xlabel `Time, s'\n", "set ylabel `Distance, m'\n", "set plotsymbol -17\n", "\n", "graph x,y,dy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## gnuplot\n", "\n", "Kernel magic for gnuplot exists:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# This loads the gnuplot kernel extension, for embedded gnuplot use\n", "%load_ext gnuplot_kernel\n", "%gnuplot inline pngcairo size 640,480 font \"Palatino,16\"" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "$DATA << EOD\n", " \n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%gnuplot\n", "$DATA << EOD\n", "1 0.05 0.02\n", "2 0.10 0.07\n", "3 0.14 0.01\n", "4 0.19 0.04\n", "5 0.25 0.05\n", "6 0.30 0.10\n", "7 0.34 0.02\n", "8 0.40 0.04\n", "EOD\n", "\n", "set xlabel 'Time, s'\n", "set ylabel 'Distance, m'\n", "plot $DATA with errorbars pt 7" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## octave\n", "\n", "Kernel magic for octave exists:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "# This loads the octave kernel extension, for embedded octave use\n", "%load_ext oct2py.ipython" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%octave\n", "x=linspace(1,8,8);\n", "y=[0.05 0.10 0.14 0.19 0.25 0.30 0.34 0.40];\n", "dy=[0.02 0.07 0.01 0.04 0.05 0.10 0.02 0.04];\n", "errorbar(x,y,dy,'bo');\n", "xlabel(\"Time, s\");\n", "ylabel(\"Distance, m\");\n", "legend(\"data\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# External file processing\n", "

\n", "With only minor changes the same scripts can be applied to external data files. Scripts below all accomplish the same basic read from a data file, a plot, followed by a number of adjustments of settings that approach the publication-quality standards of appearance. The output is not shown, but saved into into a vector-graphics file, ready to be uploaded/included into overleaf. Encapsulated PostScript (.eps) or SVG (.svg) vector-graphics formats work best, as they scale without introducing \"jaggies\" and always display at the resolution of the device (typically, at about 100dpi on a monitor screen, and at 600dpi on paper). \n", "

\n", "As of 2019, overleaf has support for SVG inclusion (\\usepackage{svg} and \\includesvg{image.svg}).\n", "

\n", "First, let's create the file of data to be plotted by each of the programs in turn:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Writing exp1.dat\n" ] } ], "source": [ "%%file exp1.dat\n", "1 0.05 0.02\n", "2 0.10 0.07\n", "3 0.14 0.01\n", "4 0.19 0.04\n", "5 0.25 0.05\n", "6 0.30 0.10\n", "7 0.34 0.02\n", "8 0.40 0.04" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## eXtrema\n", "\n", "If you installed the experimental jupyter eXtrema kernel that introduces cell-level magic %%eXtrema, you can run eXtrema commands directly within this notebook. However, some functionality is still missing, so a better way at the moment is to generate a macro file and then execute it from within eXtrema invoked outside of jupyter. This uses a full interactive version of eXtrema, so at the end when it processes your basic.pcm script that ends with a quit choose Yes when it offers to terminate the run. The resulting .eps file can be seen with a PDF viewer (e.g. evince) and is ready to be uploaded to overleaf." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Writing basic.pcm\n" ] } ], "source": [ "%%file basic.pcm\n", "clear\n", "defaults\n", "\n", "read exp1.dat x,y,dy\n", "\n", "set xlabel `Time, s'\n", "set ylabel `Distance, m'\n", "set yleadz 1\n", "set %xlaxis 16\n", "set legendon 1\n", "set legendframeon 0\n", "set %legendframe 18 65 50 85\n", "set legendsymbols 3\n", "set legendentrylineon 0\n", "set %textheight 3\n", "set plotsymbol -17\n", "set %plotsymbolsize 1.7\n", "set curvecolor red\n", "set box 1\n", "\n", "scales 0 9 9 0 0.45 9\n", "graph `data' x,y\n", "\n", "scalar\\vary a,b\n", "fit\\e2 y=a*x^2+b\n", "\n", "generate xx x[1],,x[#] 1000\n", "set plotsymbol 0\n", "set legendentrylineon 1\n", "graph\\overlay rchar(a,`y=%6.4ft<^>2<_>+')//rchar(b,`%6.4f') xx,a*xx^2+b\n", "\n", "replot\n", "hardcopy\\POSTSCRIPT extrema.eps\n", "hardcopy\\PNG basic.png\n", "quit" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-rw-r--r-- 1 esternin LinuxEmployees 37470 Oct 17 16:22 basic.png\n", "-rw-r--r-- 1 esternin LinuxEmployees 39103 Oct 17 16:22 extrema.eps\n" ] } ], "source": [ "%%bash\n", "extrema --script basic.pcm\n", "ls -la extrema.eps basic.png" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# gnuplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Data importation is actually difficult to achieve in gnuplot because it's primarily a plotting program, and data manipulation is not really its strength. On the other hand, plotting data from external ASCII data files is particularly easy, as this is precisely what gnuplot was originally designed for.\n", "

\n", "Using the same data file as above:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "%gnuplot postscript eps colour size 6.4,4.8 font \"Palatino,32\" " ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "fit f(x) 'exp1.dat' via a,b\n", "iter chisq delta/lim lambda a b \n", " 0 9.0568363000e+03 0.00e+00 2.34e+01 1.000000e+00 1.000000e+00\n", " 1 3.3906186412e+01 -2.66e+07 2.34e+00 4.446168e-02 9.725188e-01\n", " 2 1.0093949569e+00 -3.26e+06 2.34e-01 -7.587122e-03 6.416660e-01\n", " 3 4.6402022173e-03 -2.17e+07 2.34e-02 5.086764e-03 9.528535e-02\n", " 4 4.3637955261e-03 -6.33e+03 2.34e-03 5.301084e-03 8.607298e-02\n", " 5 4.3637955182e-03 -1.80e-04 2.34e-04 5.301120e-03 8.607143e-02\n", "iter chisq delta/lim lambda a b \n", "\n", "After 5 iterations the fit converged.\n", "final sum of squares of residuals : 0.0043638\n", "rel. change during last iteration : -1.80068e-09\n", "\n", "degrees of freedom (FIT_NDF) : 6\n", "rms of residuals (FIT_STDFIT) = sqrt(WSSR/ndf) : 0.0269685\n", "variance of residuals (reduced chisquare) = WSSR/ndf : 0.000727299\n", "\n", "Final set of parameters Asymptotic Standard Error\n", "======================= ==========================\n", "a = 0.00530112 +/- 0.0004514 (8.514%)\n", "b = 0.0860714 +/- 0.01495 (17.36%)\n", "\n", "correlation matrix of the fit parameters:\n", " a b \n", "a 1.000 \n", "b -0.770 1.000 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%gnuplot\n", "reset\n", "set output 'gnuplot.eps'\n", "set encoding utf8\n", "set style data points\n", "\n", "set dummy x, y\n", "f(x) = a*x**2+b\n", "# gnuplot's fitting variables MUST be initialized to non-zero values!\n", "a=1.0\n", "b=1.0\n", "fit f(x) 'exp1.dat' via a,b\n", "\n", "set xlabel 'Time, s'\n", "set ylabel 'Distance, m'\n", "set xrange [0.5:8.5]\n", "set yrange [0:0.5]\n", "\n", "plot 'exp1.dat' with errorbars pt 7 ps 2 title \"data from exp1.dat\",\\\n", " f(x) title sprintf(\"best fit: %.4f t^2 + %.4f\",a,b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# octave\n", "\n", "The use of comments makes the following script self-explanatory, hopefully. octave kernel actually will return a PNG graphic that will show up when you execute the script, in addition to writing out the EPS file." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%octave\n", "### read in the data from a file, 3 columns\n", "[x,y,dy]=textread('exp1.dat',\"%f %f %f\");\n", "\n", "### this is needed if the graph is to contain multiple plots\n", "hold on\n", "\n", "g=errorbar(x,y,dy,'go');\n", "### refine: some properties belong to the plot, identified by its \"handle\" g\n", "set(g, 'MarkerSize', 10, 'MarkerFaceColor', [.3 1 .3], 'MarkerEdgeColor', [0 .5 0]);\n", "### some others belong to the Axes of all plots, gca = Get Current Axes handle\n", "set(gca, \"linewidth\", 4, \"fontsize\", 18, \"box\", \"on\");\n", "\n", "### fit to n-degree polynomial yields a vector of n+1 coefficients of fit\n", "### a logical vector indicates whether to skip some terms, e.g. to n=2, skipping the linear term\n", "cf = polyfit(x,y,[true,false,true]);\n", "### which can be used to generate a polynomial function that can be plotted\n", "#plot(V,polyval(cf,V),'r-');\n", "\n", "### except there aren't enough points to define a smooth curve, \n", "### so apply the same fit coefficients to a much finer-grid vector\n", "xx = linspace(min(x),max(x),1000);\n", "plot(xx,polyval(cf,xx),'r-');\n", "\n", "xlabel(\"Time, s\");\n", "ylabel(\"Distance, m\");\n", "legend({\"data\",sprintf(\"fit %.3dt^2+%.3d\",cf(1),cf(3))},\"location\",\"northwest\");\n", "legend boxoff;\n", "### in Octave v<4.2.2 there was a bug in the legend() command for errorbar() entries\n", "### One could use title() as a workaround \n", "#title(sprintf(\"Best fit %.3dt^2+%.3d\",cf(1),cf(3)));\n", "\n", "hold off\n", "\n", "print -deps -color octave.eps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Use an external PDF viewer to examine and compare the three EPS files that got created, physica.eps, gnuplot.eps and octave.eps." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-rw-r--r-- 1 esternin LinuxEmployees 39103 Oct 17 16:22 extrema.eps\n", "-rw-r--r-- 1 esternin LinuxEmployees 26688 Oct 17 16:22 gnuplot.eps\n", "-rw-r--r-- 1 esternin LinuxEmployees 36770 Oct 17 16:22 octave.eps\n" ] } ], "source": [ "%%bash\n", "ls -la extrema.eps gnuplot.eps octave.eps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Why not python?\n", "\n", "This is an obvious question to ask, since we are already using a python-based jupyter notebook to run this discussion and comparison. python is a powerful programming environment, with a large number of packages available, of varying quality. python is fully capable of generating simple graphs. However, in my experience, extending this to publication-quality outputs is more difficult in python than in almost any other environment. \n", "

\n", "More importantly, its object-oriented style of coding is difficult to master on a casual basis, and is easily forgotten, if used rarely. As an illustration, I find that this \n", "

\n",
    "   data=numpy.loadtxt('exp1.dat')\n",
    "   x = data[:,0]\n",
    "   y = data[:,1]\n",
    "   dy= data[:,2]\n",
    "   def f(x, a, b): return a*x**2 + b\n",
    "   scipy.optimize.curve_fit(f, x, y, p0=[1, 0])\n",
    "
\n", "a lot less readable than this (for gnuplot)\n", "
\n",
    "   f(x) = a*x**2+b\n",
    "   a=1\n",
    "   b=1\n",
    "   fit f(x) 'exp1.dat' via a,b\n",
    "
\n", "or this (for physica)\n", "
\n",
    "   read exp1.dat x,y,dy\n",
    "   scalar\\vary a,b\n",
    "   fit y=a*x^2+b\n",
    "
\n", "

\n", " In other courses of the Physics program, python may prove more suitable, especially if specific-purpose libraries are available to help, but for the everyday scientific tasks of analyzing and plotting data, procedurally-based languages offer an easier way to perform them.\n", "

\n", "For an interesting, if somewhat discouraging read, look at https://realpython.com/python-matplotlib-guide/ just to see how idiosyncratic python's interface can be, from stucture to terminology. Without comment, below is a brief example of a properly-syntaxed \"simple\" plot in python." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.00 0.05 0.02\n", "2.00 0.10 0.07\n", "3.00 0.14 0.01\n", "4.00 0.19 0.04\n", "5.00 0.25 0.05\n", "6.00 0.30 0.10\n", "7.00 0.34 0.02\n", "8.00 0.40 0.04\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.\n", "The PostScript backend does not support transparency; partially transparent artists will be rendered opaque.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "

" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# multiple libraries for non-core functions need to be imported: \n", "# plotting, numerical functions, least squares fits\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from scipy import optimize\n", "\n", "# inline declaration of x,y,dy values\n", "#x=np.linspace(1,8,num=8)\n", "#y=[0.05,0.10,0.14,0.19,0.25,0.30,0.34,0.40]\n", "#dy=[0.02,0.07,0.01,0.04,0.05,0.10,0.02,0.04]\n", "\n", "# reading data from a file\n", "data=np.loadtxt('exp1.dat')\n", "x = data[:,0]\n", "y = data[:,1]\n", "dy= data[:,2]\n", "\n", "for i in range(len(x)): print('{:.2f} {:.2f} {:.2f}'.format(x[i], y[i], dy[i]))\n", "\n", "fig, ax = plt.subplots(figsize=(6,4))\n", "ax.set_ylabel('Distance, m')\n", "ax.set_xlabel('Time, s')\n", "ax.errorbar(x=x, y=y, yerr=dy, fmt='ro', label=\"data\")\n", "\n", "#define the fit equation\n", "def f(x, a, b): return a*x**2 + b\n", "\n", "#use it to perform the best fit to the data\n", "params, params_covariance = optimize.curve_fit(f, x, y, p0=[1, 0])\n", "\n", "# add the smooth curve on the data, using a much finer point grid across the same range\n", "xx=np.linspace(x[0],x[-1],num=1000)\n", "ax.plot(xx, f(xx, params[0], params[1]), label='Fit: {:.4f}$t^2$+{:.4f}'.format(params[0], params[1]))\n", "\n", "ax.legend(loc='best')\n", "\n", "plt.savefig('python.eps', format='eps', dpi=600)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "40K extrema.eps\n", "28K gnuplot.eps\n", "36K octave.eps\n", "24K python.eps\n", "extrema.eps: PostScript document text conforming DSC level 3.0, type EPS, Level 2\n", "gnuplot.eps: PostScript document text conforming DSC level 2.0, type EPS\n", "octave.eps: PostScript document text conforming DSC level 2.0, type EPS\n", "python.eps: PostScript document text conforming DSC level 3.0, type EPS\n" ] } ], "source": [ "%%bash\n", "ls -sh gnuplot.eps octave.eps extrema.eps python.eps\n", "file extrema.eps gnuplot.eps octave.eps python.eps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The output files are shown below as bitmap images, at the resolution of the web interface of jupyter, just for illustration. Their bitmap renderings may not do them justice. The images themselves are vector graphics and will scale properly, without \"jaggies\", when included in a LaTeX/overleaf document." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "img1 = Image.open(\"gnuplot.eps\")\n", "img1.load(scale=2)\n", "img2 = Image.open(\"octave.eps\")\n", "img2.load(scale=1)\n", "img3 = Image.open(\"extrema.eps\")\n", "img3.load(scale=1)\n", "#img3 = img.rotate(90, expand=-1)\n", "img4 = Image.open(\"python.eps\")\n", "img4.load(scale=2)\n", "display(img1,img2,img3,img4)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" }, "toc": { "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "toc_cell": false, "toc_position": { "height": "1191.6px", "left": "0px", "right": "1804px", "top": "79.4px", "width": "212px" }, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }