### 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.

This is a terrific app, Andy. Its simple interface masks a powerful program with plenty of parameters to tweak. I also like that you can download an image of the graph. Fantastic.

I’ve been experimenting with 3D graphing in actionscript; parametric surfaces in various coordinates. I don’t know anything at all about PHP or gnuplot but is that something that can be done with that scripting language?

Comment by colleenk — 3/24/2009 @ 8:02 pm

@colleenk: Thanks for your kind comments. As for other types of plots, especially 3D, gnuplot will do 3D plots, but it will “only” emit a static image from a single viewpoint, not one that can be rotated easily. I suppose that could possibly be okay though. But that would likely require a good number of configuration options. For that reason, I think 3D is a bit lower on my priority list at the moment, but I can certainly think about adding it.

(As for two other things that are somewhat related, I’d like to add plotting (2D) parametric and polar equations soon, as they require fewer extra options.)

Comment by Andy — 3/24/2009 @ 9:23 pm

Rotation would be possible with Flash CS4 but I’m still working with CS3. Parametric and polar equations are the logical next step.

What are some of the advantages of scripting in PHP? What are the limitations? Would it be relatively easy for a mere mortal to learn on her own? I have access to a 22 hr video tutorial (ugh!) through Lynda.com. Your app has inspired me to take a look.

Comment by colleenk — 3/26/2009 @ 10:09 pm

The advantages and disadvantages of PHP are mostly that it’s a server-based language. You don’t require much of the clients in terms of a proper setup (though a standards-based browser makes things easier). So, I could use gnuplot and know that if it works once for me, it’ll work for everyone else regardless of their computer. It also lets me update things much easier on the server side, without pushing the changes to users. (For other purposes, this is more important: It’s easy to return the results of a database query in PHP without having to transfer the whole database, etc.)

Another main disadvantage of all server-side languages is that you effectively have to send data whenever you want things to change, and that connection (more or less) has to be initiated by the user – it’s very hard to make a PHP application “push” data to the user unless the user['s computer] is actively asking for it.

In general, for most simple uses, PHP code is mostly HTML with some extra code thrown in to do fancy things. So if you know (X)HTML, you should be able to start pretty quickly. Things can get almost infinitely complicated after that depending on how far you go, but you can make pretty useful (and seemingly complicated) things with a little knowledge if you can apply it in the right way. (Though that’s often true of many things in general.)

Comment by Andy — 3/27/2009 @ 10:50 pm

Andy,

Ok, it is great BUT>>>>> (if you are looking for one more thing to do) it would really be great to have the ability to plot a few individual points (either just one at a time or a short plotlist type thing).. any chances of that?

Thanks for the great tool

Pat B

Comment by Pat Ballew — 4/1/2009 @ 11:38 pm

Andy,

Great great great

The ability to plot exp() would add on another great.

Peter

Comment by Peter Gibney — 4/2/2009 @ 4:34 am

Pat: It’s certainly a possibility. Right now, it’s not the first thing on my list (as above, parametric graphing certainly is, and then possibly polar), but I’ll add it to the things that I’ll try to get done. Thanks for the suggestion!Peter: Thanks! You can now do exp(x) to get e^x. (As a note, you can also use “pi” and “e” to get their respective constants.)Comment by Andy — 4/2/2009 @ 8:32 am

Andy, this an awesome tool! Thanks for making it available!

For some reason, I am having trouble graphing log(x). I keeping getting this error: “There was an error when plotting your graph! Please check that you only used the variable x, and the constant pi or e. Also check the list of usable functions to make sure you typed things properly.”

The other functions work just fine for me. It’s only the log(x) function. Do you have any idea what I might be doing wrong?

Thanks…

Cathy

Comment by Cathy — 4/13/2009 @ 11:32 am

Cathy: Thanks for your comments. And also, thanks for pointing out that I somehow broke log(x). Apparently I had mis-ordered some of the things that I do to the equation, and managed to completely mess up the logarithm. I believe it’s fixed now, so you can get the graph of log(x) correctly.Thanks again for pointing it out! If you notice any other similar bugs, please let me know too.

Comment by Andy — 4/13/2009 @ 11:59 am

Hi, I got log(x) to work ok – but can graphs of other bases be done? Eg a graph of log (base 2) x?

Comment by Claire Laverty — 8/12/2009 @ 9:56 pm

Claire: I’ll investigate a variable-base function for the next iteration of GraphSketch (which, incidentally, I’m working on tonight), but in the meantime, you may be interested in the logarithmic change-of-base formula.For example, “the base 2 log of x” can be written as

`(log(x)/log(2))`

. (The extra parentheses aren’t necessary in this simple example, but could be if you use the expression as an exponent.)Hopefully that helps you for the time being. Thanks!

Comment by Andy — 8/12/2009 @ 10:22 pm

Thanks – that formula did indeed produce the graph required. This is a FANTASTIC resource. Is saving me (as a math teacher) a lot of work.

Comment by Claire — 8/13/2009 @ 3:53 am

Hi Andy – Just graphed x^(1/3) and only the portion in QI showed up. No points in Q3. Any ideas how to get the complete graph.

Comment by Mary — 8/25/2009 @ 9:17 am

Mary: As noted on the GraphSketch main page (under the “Please note” section), you will need to use`root(x,3)`

to graph a cube root.(Fractional exponents don’t work well with the software I’m using to produce the graphs. If I find a way to make fractional exponents more standard in the future, I will try to do so.)

Thanks!

Comment by Andy — 8/25/2009 @ 10:39 am

Love this app!I use it to put graphs into my Word documents for quizzes and tests. One minor problem – the 0′s for labeling are confusing to my students. Is there any way to print the graph without the 0′s but with the grid lines?

Comment by Eileen — 9/23/2009 @ 6:39 am

Eileen: Thanks for you enthusiasm! Also, thanks for pointing out that the labeling for zeros on the axes can be confusing. I’ve rewritten the tick-mark handling code to no longer label the points at the origin, as I’m unable to come up with any reason that those labels would be helpful.If, on the other hand, someone comments that they would like the option to keep them labeled, I can add that as an option, although I think that at the moment, an extra feature to

keepthat labeled is unnecessary and would add clutter.Thanks again! Hopefully this change helps make GraphSketch more usable.

Comment by Andy — 9/23/2009 @ 12:28 pm

Great app, but how do u do piece wise functions?

Comment by jordan — 10/20/2009 @ 11:43 pm

Jordan: You can do piecewise functions by graphing something like y = (x<1)(abs(x))+(x>=1)(x^2), which will give you the graph of abs(x) for x less than 1, and x^2 for x greater than or equal to 1.You can multiply by other conditions to add further conditions, generally using > or < will work. From there, add more terms to the sum in order to add more pieces to your piecewise function. (This has two side-effects: Where the piecewise function is undefined, the value will be zero, and vertical lines will be formed where there is a discontinuity.)

Hopefully this helps.

Comment by Andy — 10/21/2009 @ 6:01 pm

Great App! It was prefect for one of my assignments. I was wondering if your app can sketch limits? For example. My prof gave me a question which is :

1. Sketch one possible graph of a single function ¦ that satisfies all of the limits below.

a. lim f(x) = 0

x ® -1 –

b. lim f(x) = -1

x® -1 +

c. lim f(x) = 1

x® 0

d. f(0) = 0

e. lim f(x) = 2

x® (infinite)

Comment by Dan — 11/1/2009 @ 1:34 pm

Dan: Thanks! I’m glad it was helpful. Unfortunately, the underlying grapher (currently gnuplot) expects the functions to be continuous. (It samples the function at a large number of points, and then connects them, in order to arrive at a rather accurate graph overall.)Unfortunately, that means that it won’t handle discontinuities in the way one might like. (For example, a jump discontinuity would be drawn connected with a line, rather than disconnected.) Similarly, infinitely small holes won’t appear. You can, however, draw the hole on later manually in a graphics editor, if that helps in some way. I’ll consider adding the ability to add such points later, but at the moment, it’s effectively not possible.

Sorry, hopefully that explains things a bit. Thanks again.

Comment by Andy — 11/2/2009 @ 1:29 pm

Andy,

This is great, but is it possible to have the X range labelled in units of degrees and pi. This is required for trigonometri function graph. Thanks.

Comment by Woon — 5/27/2010 @ 8:50 pm

Andy, this is a really fantastic resource. I’m a lecturer from Melbourne University in Australia, putting together a maths syllabus for aboriginal students to help give them a strong foundation to succeed at university.

Your graph sketcher is the best on the internet. It has that great combination of being able to do what you want it to do, while at the same time being simple to operate. I’ll certainly recommend it to my students and teaching networks.

A quick question: Would it be possible to have the option to label the x and y axes? At the moment after downloading images, I’m manually altering the image, which is a time consuming. It’s important to me that students label their axes so they are clear exactly what they are graphing. If I was to push my luck I’d also request an optional function to label the graphs themselves with the function, but that may be a lot more work.

Anyway, thanks again and congratulations on a great resource. I’ll let you know how it goes with the aboriginal students.

Comment by David — 9/15/2010 @ 5:04 pm

David: Thanks for the positive review! I did personally notice some odd things going on with the axes a few days ago, so I’ll make an attempt to fix that problem and allow adding labels to the axes as well. (Unfortunately, because I’m not sure how complex adding the labels will be, I can’t really estimate a time on it, as I do need to spend a significant amount of time on my school work as well.) Labeling the graphs themselves would be pretty difficult, because it would be difficult to tell where to place the labels. What might be possible is some sort of legend, although formatting it properly may be a bit difficult, so I’ll investigate.Comment by Andy — 9/16/2010 @ 7:01 pm

Andy, I’m a teacher and have used your site for 3 years. This year, I am unable to drag your graphs into my worksheets. Any idea why?

Comment by Chris — 9/17/2010 @ 8:53 am

Chris: I haven’t changed anything in GraphSketch that I know of that might make it harder to drag graphs into worksheets. I’ve done some testing on it just now, and it seems to be working as I’d expect. Can you email me at andy [dot] schmitz [at] gmail [dot] com and let me know what operating system and programs you’re using? I’ll try to take a look.Comment by Andy — 9/21/2010 @ 8:38 am

Well, it have the best UI of anything else (that plots graphs) you can find on the web. Helps a lot with your maths homework.

But it’ll be a lot better if tere was a mod(x), i.e. |X| function.

Thank you.

Comment by Anton — 9/23/2010 @ 7:32 am

Anton: Thanks for the positive comment. As for the mod(x) function you’re referring to, it appears as though there’s a difference in what that function is called in different regions, and I’m used to it being called “absolute value,” with “modulus” being something different. Happily, GraphSketch already supports absolute value as abs(x), so if you could just use abs(x) where you were expecting mod(x), you should be able to graph your modulus function as well.(I’ll note that there doesn’t appear to be any documentation on GraphSketch of that function’s availability at the moment, so I’ll try to update it with that soon. Thanks for pointing it out!)

Comment by Andy — 9/23/2010 @ 9:08 am

I was searching the web for something as easy to use and concise as your site AND free. Thanks for making this available. Definitely in my bookmarks list from now on.

Comment by Bob — 2/27/2011 @ 2:25 pm

What a handy gizmo! Thanks a lot for posting it — if it did polar coordinates it would be perfect.

Comment by Bob — 5/28/2011 @ 12:42 pm

I need graph sec^2(x)

Comment by tan — 9/15/2011 @ 8:23 pm

tan: Luckily, you can use the fact that sec(x) = (1/cos(x)) to graph that as (1/cos(x))^2.Comment by Andy — 9/15/2011 @ 11:22 pm

Hmm, any ways to plot a vertical line?

Comment by chin — 9/21/2011 @ 10:43 am

can i download this useful tool…it helps me alot ~~~

Comment by lengzai*Chong — 10/12/2011 @ 4:58 am

chin: At the moment, there really isn’t a good way to do that. Sorry about that. You could use the parametric mode, I suppose, but that limits the number of equations you can use, and makes it a bit more confusing for some users. (You’ll have to set x=t, and then use t in place of x for your functions, for any functions you want to render as “normal” functions.)Comment by Andy — 10/16/2011 @ 9:12 pm

lengazi*Chong: At the moment, it’s not available for download. Due to a fairly complicated setup procedure for the website, and my lack of time to support people who are trying to install it, it’s probably easiest to direct people to GraphSketch.com, where they can create graphs and save them.Comment by Andy — 10/16/2011 @ 9:19 pm

Hi there Andy,

I’m working on a new non-profit educational resource for schools (which is currently not available to the public, as it’s in the early development stages). Part of the idea is for teachers to be able to contribute articles, and for maths articles it’s obviously convenient to be able to have pictures of graphs without users having to visit another site.

Obviously it would be against net-etiquette to link directly to your image URL and use up your bandwidth.

I know you haven’t given out code in the past, but would it be possible to have it? Otherwise I’m going to have to just try and code it in PHP from GNUPlot or some alternative technology from scratch, and it seems a bit pointless when there’s such good graph scripts (like yours) around.

Many thanks!

Jamie

Comment by Jamie Frost — 10/19/2011 @ 2:38 am

Jamie Frost: I’ll contact you separately to try to figure something out. In general, the ideal way to do this is that you save the images and host them as part of your other assets, but I’ll contact you to see what makes sense.Comment by Andy — 10/20/2011 @ 5:07 pm

Would it be possible to have the x axis labeled in radians? PI/2, PI/4 etc. doesn’t seem to do it. Thanks.

Comment by Mike — 11/11/2011 @ 5:20 am

I’ve been using your graphsketch regularly with great results. But for the last few days I have not been able to get any graph to load. It just keeps saying loading but will not display the graph. I have tried on internet explorer, firefox and even a friend tried it on a MAC and it’s not working. Please let me know if there is a problem currently with the site. Thanks!

Comment by Kerry — 1/5/2012 @ 1:55 pm

Hey Andy, GraphSketch is awesome! Thanks for sharing it with us for free!

I know you haven’t released it ‘for download’ yet, but have you considered open-sourcing it? I think you’d get a tremendous response from the community.

Comment by Ryan Long — 2/19/2012 @ 4:40 am

Is it possible to remove all axes tick marks (or reduce the size of them)?

Comment by Geoff Phillips — 2/19/2012 @ 3:33 pm

Andy,

I’m a school teacher end I use Graphsketch in my classroom almost every day. It’s great! Easy to use and gives neat images.

I have two comments/questions:

1. Is there a possiblity to give the X and Y axis a changeable name, eg. ‘Time’ for the X axis, and ‘Cost’ for the Y Axis.

2. I use the graphs for my examns on paper, and the colors look too much alike on paper (school has a black and white copier). Is it possible to have some kind of changeable pattern in the graphs?

greetings from the Netherlands,

Marcel Silvius

Comment by Marcel Silvius — 2/23/2012 @ 5:11 am

Sorry for taking so long to get back to people.

Mike: Right now, it’s not. The plotting software I’m using on the backend doesn’t support that very well, although it’s on the list of things I’d like to look into in the future.Kerry: It’s possible that I accidentally “broke” GraphSketch for a little while when I was performing some upgrades to the server. Hopefully it has been working for you more recently.Ryan Long: I have considered it, but so far, I haven’t gotten the chance to clean up the code enough to make it something I’m comfortable open-sourcing. I feel like a rewrite might be a good idea, but if that doesn’t happen, I may try to release what I have at some point. (So far, school and other obligations have kept me too busy to be able to clean it off and get it into a releasable state.) Thanks for the suggestion, though! I’ll be sure to keep it in mind when (if?) I get some time.Geoff Phillips: Right now, it’s not possible to do that, no. I tried to avoid making too many options, but perhaps that’s one that would be worthwhile to add in the future. Thanks for the suggestion.Marcel Silvius: Thanks for the kind comments! Right now, it’s not possible to give the axes names: part of the problem in doing this is simply placing the labels in the right spot, and trying to avoid the graph at the same time. It’s something I would like to add, but only if there’s a good way to handle that issue (although the best option may be to ignore the issue and hope that it’s not problematic). I’m not sure about the possibility of a pattern, but I’ll be sure to take a look and see what I can do. I tried to make the colors likely to be distinguishable by colorblind users, but you’re right, they do look pretty similar once passed through a black-and-white copier.Comment by Andy — 2/25/2012 @ 10:36 am

I have been trying to use the method you said above for piece wise funtions but it does not seem to work the way I think it should. For example I messed around a bit and graphed this function f(x)=(-15=-2)(x^2-4) I messed around enough to get them to connect at a common point but the second function should have a y-intercept of -4 but instead appears to have a y-intercept of -7. Also I tried to add a 3rd function like (x>=2)(.5x) and the slope of the added line is nowhere close to 1/2 it looks more like a slope of 4 or larger. Any suggestions??

Comment by Wendy — 8/23/2012 @ 11:09 am

hey i wanna draw the exponential of an equation wat do i use? because i tried using this “|” but it wouldnt work :s

Comment by chris — 9/26/2012 @ 6:41 am

sorry not the exponential i wanna draw the modulus of a graph how do i do that?

Comment by chris — 9/26/2012 @ 6:55 am

heyy andy great app.. but plz tel me how to draw a vertical line… say x = 10

coz it only considers y ie, f(x)…???

Thanx for lovely app..

Comment by Mandeep Singh — 10/15/2012 @ 3:27 am

please tell me how to graph x=a, I mean vertical lines

Comment by oscar — 12/2/2012 @ 11:46 am

Great site. Having the ability to plot points or list of points would be also great.

Thankx.

Comment by al — 1/6/2013 @ 6:07 pm

give a wrong graph on function y = x^(1/3)

Comment by DIEP — 1/17/2013 @ 8:07 am

Great graphs. How can I change the colors of the lines?

Comment by Sue — 2/7/2013 @ 7:40 pm

How to write modulus function?

Comment by Waqas — 2/26/2013 @ 11:56 am

As it turns out, I wasn’t notified about comments for a while. Things should be back to normal now. To get to everybody’s comments:

Wendy: Piecewise functions are probably going to be tricky in GraphSketch for quite a while. I think my blog was trying to interpret what you typed as HTML rather than just text, so I think part of your first equation was chopped off. If I understand correctly, your second equation was f(x)=(x>=-2)(x^2-4), which when I enter it seems to work with a y-intercept of -4. Similarly, the slope of your second equation, f(x)=(x>=2)(.5x) seems to have a slope of 1/2 as it should. Can you try again and let me know if you’re still having trouble?chrisandWaqas: I think you’re talking about the version of the modulus function that gives |-4| = 4. Because I’m used to that being called “absolute value,” it was in GraphSketch as, for example, f(x)=abs(x). Because this seems to be a common question, I’ve also put it in as mod(x), so you can use whichever seems more natural to you.Mandeep Singhandoscar: Unfortunately, in the Functions mode, GraphSketch can’t graph a vertical line. You can, however, use the parametric mode to graph a vertical line: just set x(t)=3 (or your constant) and y(t)=2t. If you want to graph another function at the same time, set x(t)=t and y(t)=[your function].al: I’ll keep that in mind for the future. It’s something I’d like to add, but I’m not sure how to add that and keep the user interface still simple to use.DIEP: Unfortunately, due to the graphing system I’m using, x^(1/3) doesn’t work very well. You can use root(x,3) or cbrt(x) to do the same thing, though, which should work correctly.Sue: It’s a bit hidden. If you click on the color next to an equation, you can pick from any of the six colors there. Unfortunately, you can’t add your own colors, but hopefully the choices there are useful. (They were chosen to be distinguishable by most colorblind people, but there aren’t many color choices which are safe there.)Comment by Andy — 3/3/2013 @ 5:29 pm

This is a very nice graph sketching website.

I have one problem when I draw trigonometric function, like sin(x), when I put the range of X from -6.28 to 6.28, the graph is drawn nicely, but there is a exponential number in the middle of the graph like -4.44089e-16. If the X range is from 0 to 6.28, there won’t be such number in the graph.

Another thing is can I display the X tick in radian?

Thank you

Comment by Nck927 — 4/5/2013 @ 7:31 pm

Nck927: I wasn’t able to reproduce the -4.44089e-16 near zero that you indicated, but I have a guess as to why it might have been occurring. I’ve put in a patch that will hopefully fix that problem, so please let me know if you experience it again.Unfortunately, there’s not a very practical way for me to display the x ticks in radians. You could fake it yourself by replacing “x” with “(x/pi)” in your equations, however. That would allow you to just use the number of radians as the X axis, but getting the labels to include a proper π isn’t as easy as I’d like.

Comment by Andy — 4/5/2013 @ 8:08 pm

How to plot the line x=a ?

Thank you !

Comment by william — 4/8/2013 @ 9:40 pm

william: Unfortunately, GraphSketch isn’t set up to handle vertical lines under the function mode. (Strictly speaking, vertical linesaren’tfunctions, so this makes sense.) If you want vertical lines, you can plot them in parametric mode with x(t)=a and y(t)=2t (or some multiple of t). For example, something like this graph. I hope that helps!Comment by Andy — 4/10/2013 @ 7:32 am

Hey this is mind boggling …. and a wor abt th “x”and “y” on the graph jus try out embedding a simple c++ code or a loop in ur script anyways thanks a lot.

Comment by aki — 4/23/2013 @ 12:30 pm

Thanks so much for this program, it’s fantastic!

Comment by Jasmin — 4/25/2013 @ 11:33 am

how to get the graphs for[x] and {x} where [.] denote the gif and fractional part respectively?

Comment by Mish — 5/10/2013 @ 9:17 pm

aki: Unfortunately, it’s not quite that simple: I’d like to have the x and y avoid a graph if possible, and still not be easily confused as labeling the other axis. Although I suspect I’ve already given some of this up with the axis labeling, it’s a minor enough feature that it hasn’t been very high on my list. Thanks for the suggestion, though!Jasmin: Thanks!Mish: I can’t say I’m very familiar with that notation, but you should be able to use floor(x) and fpart(x), respectively. Here’s an example. There’s also ceil(x), which rounds up to the next higher integer, and int(x), which truncates toward zero. Hopefully one or more of those will be useful to you. (I should note that GraphSketch tries to connect lines, so even though the fpart(x) function isn’t actually continuous, it will be drawn as if it were.) Also, fpart(x) is just (x-floor(x)). If you’re using a different function such as floor(x) or int(x), you may want to use your own substitution, or bug me about it and I’ll add it as a function.Comment by Andy — 5/10/2013 @ 10:02 pm

Hi andy,

Please tell me how to draw x! (factorial(x))

Comment by Ankur — 5/31/2013 @ 6:10 am

how to do MODULUS GRAPH?

Comment by azam — 7/3/2013 @ 9:39 am

Sorry no website.

Thanks to Andy for a very good site. I answer Yahoo!Answer question and your graphing program will come in handy for the “clueless>”

Comment by Ray Warren — 7/3/2013 @ 1:02 pm

Is it possible to plot graphs like:

x^2+y^2=1 or

y^2 = x^3+x^2+x+1

Thank you.

Comment by Michiel Vermeulen — 10/6/2013 @ 10:13 am

Can you do absolute value. If so, how?

Comment by Sphynsie Deus — 10/7/2013 @ 1:56 pm

ok i cant figure out how to show rational functions!! help!!

Comment by Andres Woodruff — 10/29/2013 @ 9:15 pm

Plot the following

x(t) = ((-1/8 sin(55/54-12 t)-21/11 sin(7/8-4 t)+29/2 sin(t+25/9)+21/8 sin(2 t+37/15)+227/19 sin(3 t+5/7)+40/11 sin(5 t+19/10)+2/7 sin(6 t+2/3)+14/9 sin(7 t+4/3)+3/4 sin(8 t+3/4)+5/6 sin(9 t+14/5)+3/8 sin(10 t+58/19)+7/13 sin(11 t+3/7)+1997/9) theta(63 pi-t) theta(t-59 pi)+(-1/4 sin(9/7-12 t)-6/5 sin(13/10-8 t)-23/7 sin(5/9-6 t)-9/5 sin(9/7-4 t)-149/7 sin(8/7-2 t)+31/2 sin(t+18/5)+364/33 sin(3 t+1/2)+28/11 sin(5 t+1/5)+49/24 sin(7 t+8/7)+3/7 sin(9 t+10/9)+7/13 sin(10 t+1/5)+11/12 sin(11 t+23/10)+1027/5) theta(59 pi-t) theta(t-55 pi)+(-13/7 sin(12/11-6 t)-19/11 sin(5/4-4 t)-46/7 sin(1/23-2 t)+168/13 sin(t+28/11)+23/2 sin(3 t+3/10)+7/2 sin(5 t+15/8)+13/14 sin(7 t+31/9)+4/5 sin(8 t+177/44)+6/7 sin(9 t+37/11)+1/3 sin(10 t+47/10)+7/13 sin(11 t+27/7)+3/7 sin(12 t+82/27)+1927/7) theta(55 pi-t) theta(t-51 pi)+(-2/5 sin(17/11-11 t)-8/7 sin(15/11-10 t)-8/7 sin(59/58-9 t)-23/6 sin(1/7-6 t)-149/8 sin(12/13-5 t)-14 sin(5/8-4 t)+538/11 sin(t+9/2)+265/11 sin(2 t+43/22)+307/28 sin(3 t+31/7)+37/10 sin(7 t+7/2)+17/6 sin(8 t+41/11)+10/7 sin(12 t+47/10)-8767/10) theta(51 pi-t) theta(t-47 pi)+(-1/2 sin(8/7-12 t)-14/5 sin(10/7-9 t)-67/7 sin(6/5-7 t)-87/8 sin(1/6-3 t)-933/8 sin(6/7-t)+178/5 sin(2 t+1/11)+23/5 sin(4 t+20/7)+55/4 sin(5 t+67/22)+625/48 sin(6 t+13/11)+16/5 sin(8 t+14/5)+22/7 sin(10 t+17/7)+14/9 sin(11 t+2/7)-2881/6) theta(47 pi-t) theta(t-43 pi)+(-27/26 sin(2/3-14 t)-1/2 sin(11/9-13 t)-7/4 sin(4/3-12 t)-5/3 sin(11/12-11 t)-96/19 sin(10/9-8 t)-41/2 sin(1/6-4 t)+(106 sin(t))/11+51/5 sin(2 t+71/24)+197/9 sin(3 t+37/8)+24/5 sin(5 t+1/2)+97/13 sin(6 t+1/5)+6/11 sin(7 t+13/6)+49/10 sin(9 t+70/23)+57/10 sin(10 t+23/12)+2/5 sin(15 t+4)+7/10 sin(16 t+67/17)+10/11 sin(17 t+13/7)-5662/7) theta(43 pi-t) theta(t-39 pi)+(-13/9 sin(2/9-15 t)-7/4 sin(1/18-11 t)-37/19 sin(41/40-7 t)-156/11 sin(5/8-2 t)+37/19 sin(17 t)+472/7 sin(t+13/5)+319/8 sin(3 t+11/6)+218/5 sin(4 t+12/5)+113/5 sin(5 t+2/7)+147/10 sin(6 t+29/7)+27/10 sin(8 t+11/3)+49/9 sin(9 t+53/52)+49/8 sin(10 t+8/3)+89/18 sin(12 t+3)+25/6 sin(13 t+1/12)+37/18 sin(14 t+51/13)+15/4 sin(16 t+23/8)+29/10 sin(18 t+16/5)+399/5) theta(39 pi-t) theta(t-35 pi)+(13/6 sin(11 t)+200/7 sin(t+6/11)+47/4 sin(2 t+16/5)+59/7 sin(3 t+1/7)+57/10 sin(4 t+16/5)+46/9 sin(5 t+1/19)+26/7 sin(6 t+16/5)+29/8 sin(7 t+1/17)+35/12 sin(8 t+19/6)+27/10 sin(9 t+1/44)+19/8 sin(10 t+16/5)+2 sin(12 t+16/5)-8387/11) theta(35 pi-t) theta(t-31 pi)+(-23/7 sin(4/3-17 t)-9/5 sin(7/8-15 t)-283/8 sin(18/17-4 t)+272/9 sin(t+23/6)+497/31 sin(2 t+1/10)+197/11 sin(3 t+95/32)+38 sin(5 t+8/7)+251/12 sin(6 t+13/5)+38/15 sin(7 t+124/41)+177/11 sin(8 t+32/9)+48/11 sin(9 t+20/7)+58/13 sin(10 t+17/4)+53/7 sin(11 t+22/7)+50/9 sin(12 t+13/6)+18/7 sin(13 t+1/3)+6/5 sin(14 t+10/9)+26/11 sin(16 t+26/9)-4236/7) theta(31 pi-t) theta(t-27 pi)+(-23/11 sin(3/7-13 t)-30/7 sin(9/8-10 t)-13/6 sin(3/5-6 t)-355/7 sin(8/7-2 t)+1681/5 sin(t+23/5)+103/8 sin(3 t+24/7)+107/11 sin(4 t+71/24)+91/8 sin(5 t+13/10)+33/7 sin(7 t+4/7)+23/7 sin(8 t+12/5)+37/15 sin(9 t+9/5)+53/27 sin(11 t+1)+35/17 sin(12 t+38/9)+3/7 sin(14 t+8/7)+14/13 sin(15 t+2)+17/11 sin(16 t+25/6)-6512/13) theta(27 pi-t) theta(t-23 pi)+(-29/28 sin(4/9-29 t)-8/5 sin(12/11-22 t)-17/7 sin(1/7-16 t)-22/3 sin(4/5-13 t)-216/7 sin(5/6-7 t)+77/17 sin(19 t)+2033/10 sin(t+15/4)+137/5 sin(2 t+5/9)+896/9 sin(3 t+20/7)+256/7 sin(4 t+11/9)+205/17 sin(5 t+13/3)+129/5 sin(6 t+21/5)+95/11 sin(8 t+17/5)+93/7 sin(9 t+23/6)+68/5 sin(10 t+23/6)+9 sin(11 t+11/4)+27/8 sin(12 t+14/3)+57/8 sin(14 t+20/7)+47/10 sin(15 t+23/10)+7/4 sin(17 t+30/7)+8/5 sin(18 t+7/13)+7/5 sin(20 t+14/5)+21/5 sin(21 t+11/5)+17/13 sin(23 t+27/7)+13/6 sin(24 t+2)+7/4 sin(25 t+6/5)+11/8 sin(26 t+59/13)+13/6 sin(27 t+26/9)+1/2 sin(28 t+13/9)-21/10) theta(23 pi-t) theta(t-19 pi)+(-sin(4/5-16 t)-14/9 sin(5/7-15 t)-13/7 sin(5/11-13 t)-77/2 sin(14/15-2 t)+14151/50 sin(t+17/8)+178/3 sin(3 t+25/8)+173/10 sin(4 t+67/17)+107/12 sin(5 t+35/8)+39/2 sin(6 t+29/9)+17/2 sin(7 t+23/9)+31/5 sin(8 t+13/3)+28/5 sin(9 t+12/7)+4/7 sin(10 t+13/5)+9/5 sin(11 t+43/14)+25/7 sin(12 t+2/9)+15/8 sin(14 t+13/9)+9/7 sin(17 t+3/8)+1859/8) theta(19 pi-t) theta(t-15 pi)+(-11/6 sin(6/5-8 t)-16/5 sin(1/10-4 t)+666/7 sin(t+27/10)+77/5 sin(2 t+37/12)+60/7 sin(3 t+1)+36/7 sin(5 t+86/29)+21/8 sin(6 t+22/5)+7/11 sin(7 t+27/10)+5/4 sin(9 t+7/13)+3/7 sin(10 t+13/8)+5/9 sin(11 t+3/2)+3/8 sin(12 t+29/8)-2333/53) theta(15 pi-t) theta(t-11 pi)+(-87/10 sin(5/4-21 t)-556/37 sin(10/7-17 t)-89/3 sin(20/13-12 t)-32 sin(2/7-11 t)-213/8 sin(4/5-3 t)+309/4 sin(t+4/3)+913/5 sin(2 t+53/27)+363/4 sin(4 t+8/7)+494/11 sin(5 t+25/6)+344/3 sin(6 t+11/7)+983/12 sin(7 t+17/5)+151/6 sin(8 t+20/7)+44/15 sin(9 t+14/3)+384/11 sin(10 t+6/5)+103/3 sin(13 t+63/16)+64/9 sin(14 t+27/7)+45/4 sin(15 t+23/6)+7 sin(16 t+44/15)+28/9 sin(18 t+31/8)+73/4 sin(19 t+17/7)+19/4 sin(20 t+9/7)+36/7 sin(22 t+3/7)-821) theta(11 pi-t) theta(t-7 pi)+(-27/7 sin(1/3-17 t)-45/13 sin(1/36-13 t)-25/8 sin(1/19-12 t)-17/7 sin(7/5-9 t)-662/13 sin(3/8-2 t)+741/7 sin(t+30/7)+400/7 sin(3 t+1/5)+767/10 sin(4 t+6/7)+233/9 sin(5 t+4/3)+341/9 sin(6 t+22/5)+125/7 sin(7 t+19/7)+13 sin(8 t+2/5)+27/10 sin(10 t+40/9)+88/7 sin(11 t+17/6)+33/13 sin(14 t+19/9)+379/54 sin(15 t+58/19)+23/4 sin(16 t+1/12)+22/9 sin(18 t+27/13)+20/11 sin(19 t+35/12)+40/9 sin(20 t+1/15)-2911/13) theta(7 pi-t) theta(t-3 pi)+(-11/8 sin(11/7-34 t)-10/11 sin(16/17-22 t)-167/9 sin(3/5-12 t)-917/9 sin(11/9-4 t)-307/11 sin(5/4-3 t)+1273/8 sin(t+29/9)+2455/11 sin(2 t+17/4)+979/9 sin(5 t+7/5)+383/9 sin(6 t+29/10)+377/9 sin(7 t+11/7)+237/5 sin(8 t+2/7)+115/7 sin(9 t+3/7)+83/5 sin(10 t+26/7)+227/12 sin(11 t+8/17)+28/3 sin(13 t+169/42)+10/9 sin(14 t+11/10)+23/4 sin(15 t+7/10)+56/5 sin(16 t+33/8)+115/29 sin(17 t+45/11)+50/7 sin(18 t+3/8)+90/13 sin(19 t+6/5)+167/24 sin(20 t+23/8)+13/3 sin(21 t+11/6)+9/5 sin(23 t+1/4)+44/15 sin(24 t+1/3)+197/49 sin(25 t+4/3)+17/8 sin(26 t+16/5)+21/8 sin(27 t+39/10)+22/7 sin(28 t+47/10)+7/3 sin(29 t+5/8)+1/3 sin(30 t+11/7)+9/7 sin(31 t+14/5)+29/11 sin(32 t+178/59)+8/9 sin(33 t+33/17)+9/7 sin(35 t+4/3)+3518/5) theta(3 pi-t) theta(t+pi)) theta(sqrt(sgn(sin(t/2)))) y(t) = ((-9/8 sin(5/6-4 t)-38/15 sin(1/24-t)+14/15 sin(8 t)+21 sin(2 t+14/9)+38/15 sin(3 t+68/23)+2/5 sin(5 t+76/17)+3/2 sin(6 t+11/8)+2/3 sin(7 t+29/10)+1/3 sin(9 t+51/13)+3/4 sin(10 t+11/9)+4/11 sin(11 t+17/6)+8/17 sin(12 t+4/9)-1176/11) theta(63 pi-t) theta(t-59 pi)+(-82/7 sin(16/11-3 t)+397/33 sin(t+7/6)+47/5 sin(2 t+4/13)+37/7 sin(4 t+10/3)+9/8 sin(5 t+11/7)+28/11 sin(6 t+23/7)+25/13 sin(7 t+33/17)+7/8 sin(8 t+2/3)+2/7 sin(9 t+53/13)+1/3 sin(10 t+22/7)+1/12 sin(11 t+23/5)+2/5 sin(12 t+23/7)-2047/11) theta(59 pi-t) theta(t-55 pi)+(-4/5 sin(1/7-9 t)-2/5 sin(13/9-8 t)-7/6 sin(1/10-5 t)-7/6 sin(9/13-4 t)-18/5 sin(4/3-3 t)+293/21 sin(t+1/7)+241/13 sin(2 t+6/5)+sin(6 t+27/28)+26/17 sin(7 t+76/17)+3/7 sin(10 t+4/3)+1/2 sin(11 t+33/10)+1/4 sin(12 t+8/7)-1375/7) theta(55 pi-t) theta(t-51 pi)+(-122/11 sin(12/11-4 t)+266/5 sin(t+22/5)+203/8 sin(2 t+37/18)+19/6 sin(3 t+1/3)+47/7 sin(5 t+17/16)+29/5 sin(6 t+22/5)+35/11 sin(7 t+10/7)+16/7 sin(8 t+47/12)+11/7 sin(9 t+5/3)+8/5 sin(10 t+22/5)+3/5 sin(11 t+5/7)+6/7 sin(12 t+25/8)+2547/8) theta(51 pi-t) theta(t-47 pi)+(-3/7 sin(6/5-10 t)-11/3 sin(43/42-9 t)+499/6 sin(t+13/6)+45/2 sin(2 t+38/9)+13 sin(3 t+5/4)+181/15 sin(4 t+28/11)+93/10 sin(5 t+19/10)+48/11 sin(6 t+34/9)+44/9 sin(7 t+71/18)+25/9 sin(8 t+14/3)+17/18 sin(11 t+11/9)+4/5 sin(12 t+8/5)+1885/6) theta(47 pi-t) theta(t-43 pi)+(-4/3 sin(1/2-13 t)-11/2 sin(9/7-11 t)-94/9 sin(1-5 t)+123/5 sin(t+129/32)+119/5 sin(2 t+1)+443/10 sin(3 t+25/8)+661/15 sin(4 t+32/7)+119/9 sin(6 t+22/5)+16/7 sin(7 t+31/7)+131/12 sin(8 t+11/3)+104/11 sin(9 t+27/11)+148/11 sin(10 t+14/15)+14/3 sin(12 t+62/21)+17/5 sin(14 t+23/7)+16/7 sin(15 t+3/4)+25/9 sin(16 t+33/10)+10/7 sin(17 t+1/5)+2263/9) theta(43 pi-t) theta(t-39 pi)+(-23/10 sin(1/7-16 t)-41/10 sin(1/6-14 t)-65/11 sin(4/9-10 t)-532/11 sin(1/11-2 t)-251/6 sin(4/7-t)+572/9 sin(3 t+23/10)+5/3 sin(4 t+6/11)+125/8 sin(5 t+42/17)+69/7 sin(6 t+1/28)+10 sin(7 t+13/5)+79/9 sin(8 t+1/5)+97/9 sin(9 t+11/4)+74/11 sin(11 t+52/17)+51/11 sin(12 t+1/17)+10/3 sin(13 t+92/31)+29/5 sin(15 t+40/13)+19/4 sin(17 t+136/45)+14/5 sin(18 t+1/12)-962/7) theta(39 pi-t) theta(t-35 pi)+(-5/6 sin(1/5-12 t)-27/26 sin(1/5-10 t)-7/5 sin(2/9-8 t)-12/7 sin(1/7-6 t)-35/12 sin(1/30-4 t)+98/15 sin(2 t)+191/7 sin(t+7/4)+25/7 sin(3 t+21/10)+18/11 sin(5 t+32/13)+22/21 sin(7 t+38/13)+3/4 sin(9 t+3)+9/13 sin(11 t+31/10)+934/17) theta(35 pi-t) theta(t-31 pi)+(-24/7 sin(13/9-16 t)-37/8 sin(1/2-15 t)-69/5 sin(2/7-10 t)-88/3 sin(5/6-8 t)-95/6 sin(10/7-t)+31/2 sin(2 t+20/13)+114/5 sin(3 t+23/5)+674/15 sin(4 t+2/3)+201/4 sin(5 t+27/10)+559/18 sin(6 t+31/7)+32/3 sin(7 t+30/7)+109/6 sin(9 t+75/19)+158/7 sin(11 t+51/11)+87/5 sin(12 t+17/5)+87/10 sin(13 t+19/10)+31/6 sin(14 t+14/9)+8/17 sin(17 t+8/5)+1152/5) theta(31 pi-t) theta(t-27 pi)+(-16/5 sin(4/5-11 t)-7/3 sin(11/12-10 t)+1808/5 sin(t+29/9)+315/8 sin(2 t+3/8)+293/15 sin(3 t+11/4)+145/4 sin(4 t+22/7)+575/32 sin(5 t+1)+16/5 sin(6 t+21/22)+170/9 sin(7 t+56/13)+52/17 sin(8 t+37/8)+44/5 sin(9 t+3/5)+61/12 sin(12 t+7/4)+11/5 sin(13 t+21/11)+18/7 sin(14 t+31/9)+1/9 sin(15 t+17/4)+4/7 sin(16 t+25/7)+2097/8) theta(27 pi-t) theta(t-23 pi)+(-5/7 sin(1/7-29 t)-1/8 sin(4/3-27 t)-25/12 sin(10/9-25 t)-13/6 sin(8/7-23 t)-4/5 sin(1/4-17 t)-19/6 sin(7/8-15 t)-80/9 sin(5/6-11 t)-29/6 sin(7/9-8 t)-487/13 sin(4/5-5 t)-415/3 sin(1-3 t)+160 sin(t+33/7)+871/6 sin(2 t+19/6)+91 sin(4 t+2/9)+556/15 sin(6 t+22/5)+91/5 sin(7 t+13/4)+67/6 sin(9 t+51/13)+234/11 sin(10 t+4/3)+20/3 sin(12 t+23/8)+19/6 sin(13 t+29/7)+50/11 sin(14 t+20/13)+33/7 sin(16 t+20/7)+3 sin(18 t+29/10)+19/11 sin(19 t+32/7)+12/11 sin(20 t+7/5)+17/9 sin(21 t+24/7)+6/11 sin(22 t+13/7)+55/18 sin(24 t+17/6)+19/13 sin(26 t+3)+4/7 sin(28 t+37/19)-3251/5) theta(23 pi-t) theta(t-19 pi)+(-5/7 sin(12/11-16 t)-1/6 sin(5/11-15 t)-15/7 sin(1/11-11 t)-7/13 sin(1/6-9 t)-27/5 sin(1/3-8 t)-121/7 sin(11/12-5 t)-820/11 sin(5/7-2 t)+3784/9 sin(t+37/8)+974/15 sin(3 t+91/23)+50/3 sin(4 t+7/15)+109/10 sin(6 t+46/13)+6 sin(7 t+11/7)+53/10 sin(10 t+9/4)+12/13 sin(12 t+11/6)+6/7 sin(13 t+5/8)+19/7 sin(14 t+95/47)+13/12 sin(17 t+33/17)-4289/10) theta(19 pi-t) theta(t-15 pi)+(-6/13 sin(7/13-12 t)-3/4 sin(10/7-11 t)-26/7 sin(3/8-6 t)-29/6 sin(7/6-3 t)+1264/11 sin(t+21/5)+48/5 sin(2 t+17/8)+61/8 sin(4 t+14/15)+21/5 sin(5 t+49/11)+8/7 sin(7 t+17/7)+1/3 sin(8 t+137/34)+5/8 sin(9 t+5/6)+1/2 sin(10 t+19/8)-231) theta(15 pi-t) theta(t-11 pi)+(-351/16 sin(13/9-10 t)-502/7 sin(6/5-6 t)+2096/11 sin(t+4/7)+1865/4 sin(2 t+37/36)+2029/11 sin(3 t+47/12)+135/2 sin(4 t+26/11)+255/7 sin(5 t+12/13)+155/6 sin(7 t+14/9)+97/16 sin(8 t+15/7)+126/5 sin(9 t+15/4)+118/9 sin(11 t+3/2)+279/10 sin(12 t+5/2)+30 sin(13 t+8/3)+102/7 sin(14 t+2/3)+31/9 sin(15 t+7/6)+79/13 sin(16 t+21/8)+4/5 sin(17 t+34/33)+23/3 sin(18 t+16/9)+75/8 sin(19 t+9/5)+28/5 sin(20 t+11/5)+60/7 sin(21 t+10/7)+91/15 sin(22 t+7/5)+1880/7) theta(11 pi-t) theta(t-7 pi)+(-51/5 sin(7/9-11 t)-121/10 sin(4/3-10 t)-254/7 sin(7/13-7 t)-688/7 sin(1/16-3 t)-1678/11 sin(4/5-t)+3152/7 sin(2 t+15/11)+757/21 sin(4 t+12/13)+107/6 sin(5 t+23/6)+111/13 sin(6 t+1/8)+147/11 sin(8 t+5/8)+351/32 sin(9 t+19/5)+39/8 sin(12 t+7/6)+92/9 sin(13 t+11/3)+19/5 sin(14 t+33/7)+35/11 sin(15 t+25/6)+17/5 sin(16 t+5/3)+29/6 sin(17 t+11/3)+15/7 sin(18 t+17/9)+11/4 sin(19 t+17/5)+38/13 sin(20 t+15/11)-755/4) theta(7 pi-t) theta(t-3 pi)+(-4/7 sin(1/16-30 t)-9/8 sin(9/10-29 t)-17/7 sin(11/8-28 t)-3/10 sin(8/7-24 t)-19/10 sin(8/11-22 t)-19/6 sin(4/9-18 t)-32/5 sin(10/7-16 t)-115/8 sin(16/15-12 t)-34/5 sin(12/11-11 t)-59/4 sin(10/7-6 t)-245/4 sin(9/10-4 t)-1334/9 sin(5/8-3 t)-656/3 sin(1-t)+4/7 sin(32 t)+2062/5 sin(2 t+9/10)+293/9 sin(5 t+9/5)+128/5 sin(7 t+26/25)+17/5 sin(8 t+41/20)+179/7 sin(9 t+23/11)+118/9 sin(10 t+17/4)+3 sin(13 t+7/5)+15/8 sin(14 t+21/5)+11/6 sin(15 t+19/8)+11/7 sin(17 t+27/7)+53/13 sin(19 t+13/10)+46/13 sin(20 t+22/7)+33/10 sin(21 t+38/13)+11/8 sin(23 t+8/5)+8/7 sin(25 t+3/2)+32/33 sin(26 t+7/15)+9/5 sin(27 t+22/7)+5/9 sin(31 t+14/13)+18/11 sin(33 t+20/9)+1/4 sin(34 t+43/13)+1/6 sin(35 t+45/11)-11226/25) theta(3 pi-t) theta(t+pi)) theta(sqrt(sgn(sin(t/2))))

Comment by Reelix — 3/21/2014 @ 10:20 pm

its a great application. how do i have it offline. thank you

Comment by daniel — 4/21/2014 @ 12:56 pm

First of all I’d say your app is AWESOME!!! just.

Question:

sketch: (1/(100x)) * 10

when x-range is between -17 and 17 then the graph looks kinda short-circuited at x=0

but if we change the x-range to between -8 and 8 then that short-circuit disappears

Please e-mail me if I were mistaken or if it’s a browser/computer limitation to plot this much precise levels on graphs. Or maybe this is limit a to LCD screen I guess. Well whatever if you get time then Please!!! investigate this.

Thanks.

Comment by Danish — 5/13/2014 @ 1:18 pm

I love your app.! I join a number of others in hoping we can get to plot points to form a curve and matching equation. Last bit may be too much to ask but a curve would be really great!

Comment by Robert — 5/18/2014 @ 9:32 pm