Difference between revisions of "Gnuplot/C2/Error-bars-and-data-fitting/English"
Snehalathak (Talk | contribs) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 22: | Line 22: | ||
|| '''Slide Number 3''' | || '''Slide Number 3''' | ||
'''Learning Objectives''' | '''Learning Objectives''' | ||
− | || | + | || |
* Fit the dataset to the equation | * Fit the dataset to the equation | ||
* Draw an arrow object in the graph | * Draw an arrow object in the graph | ||
Line 31: | Line 31: | ||
|| To record this tutorial, I am using, | || To record this tutorial, I am using, | ||
* '''Ubuntu Linux''' 16.04 OS | * '''Ubuntu Linux''' 16.04 OS | ||
− | * '''Gnuplot''' | + | * '''Gnuplot''' version 5.2.6 and |
− | * '''Gedit''' | + | * '''Gedit''' version 3.18 |
|- | |- | ||
Line 52: | Line 52: | ||
|| Go to '''Desktop'''. | || Go to '''Desktop'''. | ||
|| Go to '''Desktop'''. | || Go to '''Desktop'''. | ||
+ | |||
I have a, '''x,''' '''y,''' '''y'''-error type data, in a text file. | I have a, '''x,''' '''y,''' '''y'''-error type data, in a text file. | ||
Line 65: | Line 66: | ||
|| Close '''gedit'''. | || Close '''gedit'''. | ||
Press '''Ctrl+Alt+T'''. | Press '''Ctrl+Alt+T'''. | ||
− | || | + | || |
+ | |||
Open a '''terminal'''. | Open a '''terminal'''. | ||
Line 144: | Line 146: | ||
|| Go to graphical window. | || Go to graphical window. | ||
|| Make an educated initial guess for the values of '''a''' and '''k'''. | || Make an educated initial guess for the values of '''a''' and '''k'''. | ||
+ | |||
Go to the graphical window. | Go to the graphical window. | ||
Line 240: | Line 243: | ||
|| Cursor on the '''terminal'''. | || Cursor on the '''terminal'''. | ||
|| Now we have a function that fits the given data points. | || Now we have a function that fits the given data points. | ||
+ | |||
Let's plot the data points and the function together. | Let's plot the data points and the function together. | ||
Line 249: | Line 253: | ||
|| Enter the command, '''plot f(x) lw 2 title 'fitted data', "xydy.txt" using 1:2:3 with yerrorbars pt 7 ps 1.5 notitle''' . | || Enter the command, '''plot f(x) lw 2 title 'fitted data', "xydy.txt" using 1:2:3 with yerrorbars pt 7 ps 1.5 notitle''' . | ||
|| Enter the command as seen on the screen. | || Enter the command as seen on the screen. | ||
+ | |||
This plots the data and the function together. | This plots the data and the function together. | ||
Line 256: | Line 261: | ||
|| Hover mouse near the legend. | || Hover mouse near the legend. | ||
|| The fitted data is represented by a line with a line. | || The fitted data is represented by a line with a line. | ||
+ | |||
I am specifying the legend for '''f of x''' as '''fitted data'''. | I am specifying the legend for '''f of x''' as '''fitted data'''. | ||
− | No legend title is added for the starting | + | No legend title is added for the starting dataset as no '''notitle''' is mentioned. |
− | mentioned. | + | |
+ | I have specified a filled circle '''symbol''' and 1.5 for point size. | ||
|- | |- | ||
Line 265: | Line 272: | ||
Show symbol with error bar. | Show symbol with error bar. | ||
|| Data points are represented by symbols with '''error bar''' and without a line style. | || Data points are represented by symbols with '''error bar''' and without a line style. | ||
− | |||
− | |||
|- | |- | ||
Line 287: | Line 292: | ||
|- | |- | ||
|| Move the mouse on the screen to show the arrow placement around ('''1.63,77200 to 1.7, 62000'''). | || Move the mouse on the screen to show the arrow placement around ('''1.63,77200 to 1.7, 62000'''). | ||
− | || In the graph, I want to add an arrow | + | || In the graph, I want to add an arrow. |
|- | |- |
Latest revision as of 09:51, 4 February 2020
Visual Cue | Narration |
Slide Number 1
Title Slide |
Welcome to the tutorial on
Error bars and data fitting in gnuplot. |
Slide Number 2
Learning Objectives |
In this tutorial, we will,
|
Slide Number 3
Learning Objectives |
|
Slide Number 4
System and Software Requirement |
To record this tutorial, I am using,
|
Slide Number 5
Pre-requisites https://spoken-tutorials.org |
To follow this tutorial,
|
Slide Number 6
Code files |
|
Go to Desktop. | Go to Desktop.
I have a, x, y, y-error type data, in a text file. |
Hover mouse over x, y and dy columns on the screen for the file. | The first column is x data.
The second column is y data. The third column is error in the y data. |
Close gedit.
Press Ctrl+Alt+T. |
Open a terminal. |
Enter the command cd Desktop .
Enter the command gnuplot. |
Change the directory to Desktop and open gnuplot. |
Press Ctrl+L. | I will clear the screen. |
Cursor on the terminal. | Let's plot the data to see the trend. |
Enter the command plot 'xydy.txt' using 1:2:3 with yerrorbars . | Enter the plot command as seen on the screen. |
Hover mouse over :3 . | The command, colon 3 with y error bars adds the error to the plot. |
Hover mouse over yerrorbars. | If error limits are on the x data, we have to use, xerrorbars term for plotting.
The graphic window opens. |
Hover mouse over decay curve. | Let's fit this graph to an equation. |
Cursor on the graph. | Here, the data points are likely to follow an exponential decay. |
Hover mouse on the graph. | The points deviate from an accurate exponential decay.
This could be due to measurement errors. |
Point mouse next to data. | We will fit the given data points to an exponential decay function. |
Cursor on the screen. | Let's see a few steps involved in fitting data points to an equation. |
Slide Number 7
Steps for Fitting Data |
|
Slide Number 8
Steps for Fitting Data |
|
Type, f(x) = a * exp(-k*x)
and press Enter. |
First, let's define the function.
In the gnuplot prompt, type f of x is equal to a times e to the power minus k x. |
Go to graphical window. | Make an educated initial guess for the values of a and k.
Go to the graphical window. |
Hover mouse near top of y axis. | From the graph, I will place the initial value of a at 1,50,000. |
Hover mouse to show ½ decay. | For an exponential decay, I will place the initial guess of k around 0.5 . |
Close the graphical window. | Close the graphical window and go to the gnuplot terminal prompt. |
Enter the commands,
a=150000 k=0.5 |
Enter commands to set initial guess values.
Set a to 150 thousand and k to 0.5 . |
Type, fit f(x) ‘xydy.txt’ using 1:2:3 via a,k
and press Enter. |
To fit the data type the command,
fit f of x in single quotes the file name. Here it is xydy dot txt. Then using 1 colon 2 colon 3 via a comma k . Here a and k are the coefficients. |
Hover mouse over :3 . | We could leave out the colon 3 part in the command.
Then, errors in the y data are not considered during the data fitting process. |
Press Enter.
Data fitting is seen on the screen. |
Press Enter to run the data fitting algorithm.
The coefficients in the equation are optimized by an iterative process. The output is generated on the screen. |
Scroll up. | Let's scroll up the screen. |
I see an error warning message on the top. | |
Hover mouse over the chi square table. | Notice a table with chi square and new values for a and k after each iteration. |
Incorporate the number of iterations. | The program reports that, the fitting process converged after 10 iterations. |
Hover mouse over final sum of square of residuals. | Many fitting parameters are reported in the output.
Program reports, final sum of square of residuals. |
Hover mouse over iteration value. | Notice, relative change in values after the last iteration.
|
Hover mouse over Degrees of freedom. | Degrees of freedom is 9. |
Hover mouse over RMS. | RMS of residuals is around 2.5. |
Show a and k values on the screen. | Updated values of a and k and their error in estimation is also shown. |
Hover mouse over the correlation matrix. | The correlation matrix of variables is at the end of the output. |
Cursor on the terminal. | Now we have a function that fits the given data points.
Let's plot the data points and the function together. |
Press Ctrl+L . | I will clear the screen. |
Enter the command, plot f(x) lw 2 title 'fitted data', "xydy.txt" using 1:2:3 with yerrorbars pt 7 ps 1.5 notitle . | Enter the command as seen on the screen.
This plots the data and the function together. We are plotting the fitted equation along with the initial data points. |
Hover mouse near the legend. | The fitted data is represented by a line with a line.
I am specifying the legend for f of x as fitted data. No legend title is added for the starting dataset as no notitle is mentioned. I have specified a filled circle symbol and 1.5 for point size. |
Show the line on the graphics window.
Show symbol with error bar. |
Data points are represented by symbols with error bar and without a line style. |
Enter the command, set xrange [0.95:5.05] . | Let's also set x axis limits with set xrange command as seen. |
Type replot and press Enter to see the graphics window. | Replot to see the results. |
Show this web site address screen shot. | Check the gnuplot website for example scripts on data fitting. |
Cursor on the screen, around the (1.3,6000) region. | Next, let’s draw an arrow object in the graph. |
Move the mouse on the screen to show the arrow placement around (1.63,77200 to 1.7, 62000). | In the graph, I want to add an arrow. |
Highlight in video, the co-ordinates seen on the graph window.
(1.63,77200 to 1.7, 62000). |
I will note down the coordinates as seen in the graphics window. |
Go to the terminal. | Go to the terminal. |
Type, set arrow 1 from 1.63,77200 to 1.7, 62000 and press Enter. | Enter the commands as seen on the screen.
Here, one is the name I have given for the arrow object. |
Type replot and press Enter. | Replot to see the updated result. |
Cursor on the graphics window. | I will also add a second arrow in another direction. |
Type,
set arrow 2 from 1.63,77200 to 1.4, 62000 and press Enter. |
Go to the terminal and enter the command as seen on the screen.
I will name this arrow as two. |
Type replot and press Enter. | Replot to see the updated result. |
Cursor on the graphics window. | Now we see two arrows in the graphics window.
I want to remove one of the arrows. To remove the object, we have to unset the object. |
Type unset arrow first and press Enter. | Hence, go to the terminal.
Enter the command, unset space arrow space one to remove the first arrow. |
Type replot and press Enter. | Replot to see the updated result. |
Cursor on the graphics window. | The arrow that was named one is now removed from the graphics window, |
Close the graphics window.
Type quit and press Enter. |
Close the graphics window and quit gnuplot. |
Slide Number 9
Summary |
To summarize, in this tutorial, we
|
Slide Number 10
Assignment |
For the assignment activity, please do the following.
|
Slide Number 11
Assignment |
|
Glimpse of assignment | The completed assignment looks similar to this. |
Slide Number 12
Spoken Tutorial Project |
This video summarises the Spoken Tutorial Project .
Please download and watch it. |
Slide Number 13
Spoken Tutorial workshops |
We conduct workshops and give certificates.
For more details, please write to us. |
Slide Number 14
Forum for specific questions: |
Post your timed queries in the forum. |
Slide Number 15
Acknowledgement |
Spoken Tutorial Project is funded by MHRD, Government of India. |
This is Rani, from IIT, Bombay.
Thank you for joining. |