### GraphSketch

So, I spent the last few days working on GraphSketch, a new, free, online grapher. It’s available at http://graphsketch.com/ . Go check it out for a minute. Try graphing something like “(x-3)(x+10)(x-14)/100” or “tan(pi*x/10)“. I’ll wait.

Done? That’s pretty much it: Enter an equation, choose some settings, and graph it. There are a number of functions you can use to plot, you can save the graphs to use later (in documents, worksheets, etc.), you can create a permanent link to them to share with others, and a few other nice little things (like getting a quick graph by going to an address like http://graphsketch.com/sqrt(x) ). Details on how below.

GraphSketch is mostly written in PHP, with the actual graphing done in gnuplot. Some manipulation is done in PHP before things are passed to gnuplot to account for odd roots, implicit multiplication, and so forth. In gnuplot, I’m using the pngcairo terminal, implemented in the not-yet-released gnuplot 4.3 CVS code (it’s public but not a “stable” release), to get anti-aliased graphs, because aliased graphs (especially with low graph widths) tend to look relatively poor.

Programming and debugging for the first version took just a few days, which was relatively quick compared to other such applications I’ve made. The main interface is almost entirely one PHP file along with some JavaScript that uses prototype and script.aculo.us to make things work smoothly. Automatically preloaded graphs like the link above are handled through a relatively simple mod_rewrite rule. Naming and the domain name were debated among a few people and decided upon in under an hour, which was also pretty quick.

So, if you have any questions, comments, or suggestions about GraphSketch, feel free to leave a comment below or email me at andy.schmitz at gmail.com.

Thanks,

Andy Schmitz

**Update 05/12**: GraphSketch now has delivered over 10,000 graphs.

How can i graph sth like f(x)=cos^3(x) + cos(x) ??

Anyway your website is awesome. Really. I mean it ðŸ™‚

Thankyou in advance!

Comment by Claudia — 11/9/2015 @ 5:52 am

Hello,

is it ok to make a graph from your website and use it on my website?

Best regards,

Aladdin

Comment by Aladdin — 11/24/2015 @ 3:47 pm

How do i plot a heaviside step function or dirac pulse?

Comment by Aleksandar — 11/27/2015 @ 1:13 am

Sola: It looks like the “x” in the second part of your equation isn’t actually a standard “x”. If you retype it (just select it, delete it, and type x again), the graphing should work. (For example, graphing -5x^3+x/2 should work.)Claudia: You’ll need to graph that as (cos(x))^3 + cos(x). Thanks!Aladdin: Yep, feel free! However, please save the images and host them on your own, so my server doesn’t have to render the graph each time someone visits your website.Aleksandar: The Dirac delta function won’t show up the way GraphSketch graphs things, unfortunately. You can do the Heaviside step function by taking advantage of the sgn(x) function to determine the sign of the value: sgn(x)/2+0.5 will give you the Heaviside step function.Comment by Andy — 12/23/2015 @ 9:29 pm

This may be answered in a previous comment, but I am wondering if it is possible to graph a piecewise function. For example, can I graph the line f(x)=x from (-infty,0] and then plot f(x) = x^2 from (0, infty)? Can I plot open circle or filled circle endpoints? Thanks!

Comment by Sarah — 1/28/2016 @ 9:59 am

How do you graph an absolute value function?

Comment by Riley Swart — 2/2/2016 @ 9:01 pm

I use your web site to show graphing and translations to my Algebra I & II classes. Is there anyway to graph log functions to bases other than 10 and e?

Comment by Bob Casagrande — 2/3/2016 @ 10:52 am

How do you make a graph for a log function with a different base than 10 for example….Log5(x)….base is 5.

Comment by Wilson — 2/14/2016 @ 3:15 am

Sarah: Unfortunately, you can’t really plot segments in GraphSketch, and discontinuous functions will be graphed as if they were continuous. With that said, you can graph the line you were asking about as x*(x<0)+(x^2)(x>0). You can add up several such expressions to get more complicated functions, although it’s a bit painful to do so.Riley Swart: Use the abs(x) function.Bob CasagrandeandWilson: There’s no way to do so without using the properties of logarithms, but you can of course use those: Log_5(x)=ln(x)/ln(5) (or log(x)/log(5), if you prefer).Comment by Andy — 2/15/2016 @ 5:58 pm

What if I wanted to graph something like x=2? Is that possible?

Comment by Deijha — 2/25/2016 @ 6:05 pm

Dear Andy, thank you for your great website. I just noticed something weird!

I tried to graph the following function:

[sin(x)*cos(x)]^2

but the answer does not look correct! It has negative sides which is impossible, since the graph should always be positive.

Thanks again,

Vaheh

Comment by Vaheh — 3/1/2016 @ 7:06 pm

Just a note to thank you for this website.

I use it often when answering questions from Yahoo!Answer. I feel that if a student can see the graph of a function then they might be able to see the characteristics of that function, which is often the goal of the exercise.

My Y!A handle is ProfRay.

Comment by ProfRay — 4/17/2016 @ 10:18 am

Getting “internal server error” attempting to open “http://graphsketch.com/”. Has the site been decommissioned?

Comment by Tom Veatch — 5/8/2016 @ 6:21 pm

First of thanks for this website. It is Excellent to explain the graph behavior. Secondly, For trigonometric graph I want to label in terms of Ï€. Can you help me in this regard.

Comment by Muhammad Farooq Ali — 5/16/2016 @ 6:13 am

y=|sin x|

Comment by SARWARISH — 6/15/2016 @ 7:31 am

Deijha: That’s not a normal function, so you won’t be able to graph it using the “y=” form, but you could graph it in parametric mode using x=2 and y=t, like this.Vaheh: GraphSketch doesn’t seem to understand brackets in the way you’d expect, so you’ll have to use parentheses instead, like (sin(x)*cos(x))^2. Thanks for pointing that out, I may have to see about getting it to interpret brackets too.ProfRay: Thanks! Always good to hear people using GraphSketch.Tom Veatch: Yep, there was a temporary issue with GraphSketch. Thanks for pointing it out, though! It should be fixed now (and for a while, as I’ve been slow at writing up responses to blog comments).Muhammad Farooq Ali: Thanks! Unfortunately, right now it’s not possible to label the grid lines in terms of pi. I had looked into it, and unfortunately, it’s not particularly easy given how the graph labels are plotted. I’ll note it down for potential future improvements, though.SARWARISH: y=abs(sin(x))Comment by Andy — 6/17/2016 @ 4:40 pm