Canvas not supported; please update your browser.


A = 0.12345678
B = 0.12345678
C = 0.12345678
rms Error = 0.12345678
x = 0.123456,   slope = 0.123456

X label:   X units:

Y label:   Y units:


Save graph as:


nPlot was designed to let science teachers teach science instead of how to wrestle with different graphing programs. For example, uncertainties can simply be entered in the columns labeled "± x" and "± y". Not all students have the math experience required to linearize their data. With nPlot, they don't have to. The most common mathematical models encountered in introductory physics can be selected with a mouse click.

nPlot now supports up to 3 separate curves. The axes will be scaled so that the data from all three curves fits within the graph. It is not possible to control the scaling of the graph axes. The auto-scaling routine is quite robust. Of course, some students will find ways, through bad data, bad math, or both, to break it. We call these "teachable moments."

For now, there is no resorting to scientific notation for graphing large or small data values. Encourage your students to convert their data to micro- or mega-whatevers. To facilitate that, the axis labeling understands Greek. Just type e.g. \Delta, \delta, or \mu to get any letter in the Greek alphabet (that is not already in the Roman one). The labels also understand e.g., ^2 in the usual way.

Fit results and their uncertainties are purposely reported to a ridiculous number of decimal places, so that students have the opportunity to think about uncertainty and precision. (Although the uncertainties in the data grid are drawn on the graph, they do not affect the fit.) Goodness-of-fit is given by the root mean square error (RMSE). Smaller indicates a better fit, but not necessarily a better model. Students will have to be discouraged from choosing a quadratic fit to everything. If the "Download fit" button is checked, then the numerical results of the fit (or fits) will be downloaded as a separate text file ("fit.txt") when the graph is downloaded (as "Graph.png"). The student should allow multiple downloads if they get a pop-up asking for permission.

The Tangent Finder does just what it says. When activated, it gives the slope of the fit at the x-value of the mouse position. If a student wants to include a tangent in their downloaded graph, they can slide the mouse off the top edge of the graph at the desired x-value.

Students can prepare their data in Excel or Google Sheets, then copy and paste the whole block into the data grid. Then they can download the completed graph and paste it next to the data table in their spreadsheet and hey! look! an electronic notebook.

Within the data grid, Enter, Tab, and the arrow keys do reasonable things. Shift-delete clears the current cell. If a data cell turns red, it has some problem preventing it from being interpreted as a number. If a data point is suspect, you check the box in the "skip" column and it will be ignored. The Clear Data button clears only the currently selected sheet. Holding down the control-key while clicking Clear Data will erase the data from all three sheets.

The Save Graph feature saves the graph for the currently selected sheet, but only on the physical machine the student is using. This is useful only if they have a personal Chromebook or other device. Other aspects of graph saving: holding down the shift key while clicking the Clear Data button will delete all saved graphs. Holding down the shift key while clicking on the name of a saved graph will delete just that graph. In both cases, there is no "are you sure?" warning. A recalled graph will overwrite whatever is in the currently selected sheet. If the title on a recalled graph is "undefined", then the student should give it a proper title and re-save it under the original name.

The advanced models involve advanced fitting methods. Since this is a program for begining students, some necessary but tricky stuff is done for them. As a result, the majority of the data needs to be in the positive quadrant or the fit will fail (and no curve will be drawn).


Bad paste attempt. Check your spreadsheet data for letters and other non-numeric characters.


nPlot v5.01

© Geoff Nunes, 2020

Questions, brickbats, and requests for new features can be sent to doc at this website (noragulfa.com). Please don't expect a rapid response.

The fitting routines are adapted from Press, Teukolsky, et al., Numerical Recipes. The data grid was adapted from code by Ondřej Žára. Everything else is my fault.