# Plot.ly, the new graphing hotness

I’ve written in the past about the wonderful graphing program that is OmniGraphSketcher, and I have also proselytized about LinReg, a bare bones free graphing program from Pomona College that we use in our physics classes.

I love both of these programs. OGS makes beautiful graphs that you can draw by hand, which is perfect for drawing piecewise graphs for math and physics classes. It’s also super easy to simply paste in one’s data from a spreadsheet and graph it. Problem is, it’s somewhat expensive—$20 for the educator version. Also, it won’t plot any sort of mathematical function other than linear regressions. It’s much more of a tool for drawing graphs than for analyzing data.

LinReg is great for students. It’s free, and it forces them into certain habits of good graph making that are essential—things like adding axes labels, units, and uncertainty to each measurement. But at the same time, LinReg can be frustrating and limiting—you have to type data in by hand, it won’t plot two sets of data on the same axes, it’s a pain to clear a regression line you no longer want, and you can’t plot functions. Plus, it’s a program students need to install on their computer to use at home, which can be a barrier to entry.

Now, what would be better than LinReg? How about something that doesn’t need to be installed, something that creates reasonably beautiful graphs with a simple cut and paste of data (without all that excel chart junk), and something that on the backend allows for incredible power and flexibility. Oh, and it’d be great if it was also free, and allowed for easy syncing with services like Google+ and Dropbox.

Of course, this is just a fantasy, right? No such magic graphing tool actually exists, does it?

Check out Plot.ly.

Here are the instructions for making a graph.

Adding axes labels, a title and annotations is are one-click operations.

Here are the instructions for doing a linear (or polynomial) regression:

But we’re just getting started.

Create a new window and click on script to be able to create complete graphs using python and the numpy package, which means the sky is the limit with what you can do with this graphing package—just check out this gallery.

Plot.ly seems to be the holy grail of science graphing for schools. It’s a tool that is simple enough to create beautiful graphs with no fiddling, while at the same time allowing for lots of customization. And with the scripting power of python it’s awesome tool for introducing students to the power of computational thinking. It provides a perfect ramp from creating the simplest plot to the most complex data visualizations that will grow with students as they grow in sophistication. Saving to Google Drive and Dropbox are also built in. Works on iPad, too. With Plot.ly, Desmos, and Wolfram Alpha, I can’t think of anything you can do on a nSpire graphing calculator that you can’t do on an iPad with these free webapps.

And if you needed even more reason to check them out, their support is equally amazing.

Check it out.

https://plot.ly/~chris/384/1000/800/

goodbye mathematica!

Awesome! Thanks for sharing John!

I’m finding plot.ly very non-intuitive and frustrating to use. I still haven’t gotten a linear regression to show up on the plot. Also, it took me a bunch of frustrating clicking before figuring out that “mode” was the button that would let me get rid of the connecting lines between points. But maybe kids will pick it up faster than an old lady like me!

I think at the moment, the linear regressions only appear as data points which you can graph, and then show as a line by connecting the dots, but you can’t really just graph the function. This works ok if you’re doing first order regressions, but higher order fits won’t look like smooth curves. It’s something that might be worth giving them feedback to improve. They added the ability to display the equation of fit in one day.

John, your instructions might mention that you have to click “Math” and “R^2” to access the plots. I too found this unintuitive given your instructions.

I tried entering data with the copy-and-paste instructions, and plot.ly inserted lots of & nbsp; (that were NOT in the paste buffer) then seemed unable to plot the data points. I think that my engineering students would struggle with getting plot.ly to do anything much more than they struggle with gnuplot, so I’m not going to mention it to them.