plot · faq · comments


General questions

I see a blank screen and no plot.
FooPlot is believed to work on IE 8+, Chrome, Safari, FireFox 4+, and Opera. If you have problems with these or any other popular browsers, please let us know so we can fix it!

Is the source code copyrighted?
The source code and interface is licensed as free software under the GNU Lesser General Public License (LGPL) v3. The source code is admittedly rather messy as this entire project was really just a quick hack and learning project, so feel free to contact me at fooplot [at] if you have any questions.

Are the saved plots copyrighted?
No. The exported PDF/EPS/PNG/SVG images may be considered to be in public domain (or CC0 if your jurisdiction does not allow for public domain works) and you may use them however you wish. A link back to our homepage is always appreciated, but that is entirely your choice.

Can I embed a Fooplot live plotter into my webpage?
There are plans to soon release embed code that you can use to embed a live, scrollable plot into any webpage, stay tuned. In the mean time, if you are itching to hack at the code, feel free to do so in accordance with GPL as described above.

Math questions

What functions are supported?
Trigonometric functions:
  sin(x) cos(x) tan(x) sec(x) csc(x) cot(x) asin(x) acos(x) atan(x) asec(x) acsc(x) acot(x)

Hyperbolic trigonometric functions:
  sinh(x) cosh(x) tanh(x) sech(x) csch(x) coth(x) asinh(x) acosh(x) atanh(x) asech(x) acsch(x) acoth(x)

  ln(x) log(x) sqrt(x) abs(x) floor(x) ceil(x) u(x)


The graph of x^2/(x+2)(x-2) or 1/2x is wrong.
The standard order of operations in computing is (1) terms inside parentheses, (2) exponents and roots, (3) multiplication and division, (4) addition and subtraction. Since multiplication and division are on the same level, your equation x^2/(x+2)(x-2) is read left to right, placing (x-2) in the numerator. If you intend it to be in the denominator, you could enter this as x^2/((x+2)(x-2)) OR x^2/(x+2)/(x-2) — either would work. Similarly, 1/2x is read with x in the numerator. To place it in the demoninator, enter 1/(2x) .

How do I do cube roots and fourth roots?
x^(1/3), x^(1/4)

The graph of x^(2/3) is missing the left half.
This is due to a limitation in the way the plotting mechanism works. 2/3 is approximated to 0.666666666667 which then no longer contains the left half of the plot. The easiest workaround is to re-express the formula as (x^2)^(1/3). If any programmers have any tips on fixing this consistently, please let me know.

Will you add support for constants such as 'pi'?
pi and e are already supported. You can also use these constants in describing window bounds or grid spacing.

How do I plot a logarithm in base 10?
log() uses base 10, and ln() uses base e.

How do I plot a vertical line such as x=2?
You can currently do this by creating a Parametric equation with x=2 and y=s, and setting s to an interval that covers your viewing window. See this for an example.

What happened to the root-finding button?
It got combined with the intersection button. The intersection button will now find both roots and intersections. Just click as close as possible to whatever you're trying to find.

It didn't find a root or intersection that is supposed to exist.
The root or intersection feature only works for functions of the form y=f(x) and not on polar or other plot types. Also, FooPlot uses Newton's method for finding roots and intersections, which has some limitations. For example, it will not be able to find the root of sqrt(x), non-differentiable functions, or functions that exhibit fractal behavior. Also, if two functions are too close to each other, beyond the precision of the variables used in the underlying code, bogus roots or intersections may be found. As with any graphing program or graphing calculator, it is highly recommended that you use your analytical skills to ensure that the results you see make sense before you trust them. I do intend to improve this feature using a better algorithm in the future.

How do I draw a piecewise function?
You can enter a piecewise function using the comparison operators <, >, <=, >=, and == which return 1 if the comparison is true and 0 if the comparison is false. For example, (x<0) returns 1 if the statement (x<0) is true and 0 otherwise. To plot the piecewise function y={x, x<0; x^2, x>0} you could enter (x<0)*x+(x>0)*x^2.

Copyright ©2007-2022 Dheera Venkatraman.
English · Deutsch · Español · 简体中文 · 繁體中文