Graph Explorer was previously known as Graph Paper. But it is more of a graph plotter and explorer than a virtual graph paper. Also people used to mistake that it was a graph paper printer from the title. So the title was changed to Graph Explorer from version 2.10a. I also put my name as a part of the title hoping to eliminate title-clashing with other softwares, once and for all. It has gone a long way since I lost the source code and rebuilt it. It has improved a lot thanks to your imaginations. I still sincerely hope that you will send me any doubts/suggestions/opinions (or just a 'thank you' ;) about this program! And also if you do mail me, I'd be happy to learn how you have come across this program.
Graph Explorer can only draw graphs of functions. It cannot draw relations, like x2+y2=1
. Having said this, let me show how the program can be used.
Working with Graph Explorer is very very easy! Press Ctrl+F to display the Function window. Here you are supposed to describe y as a function of x. Erase whatever is already here, and type y=1/(1+x@)
. Here x@
is actually shorthand for x*x
(or x2
). Click on Draw. You will get a bell shaped curve. You can click your mouse inside the graph window and drag to slide the virtual graph paper and explore more of the function.
Now change the function to y=1/(1+x^3)
. The ^ operator is power, so that x^y
is xy
and x*x
is same as x^2
(or x@
). The new graph will have a discontinuity at x = -1 and you will not be able to see much of it in the default sized window. Either you will have to change the window size, or you must scale the graph down by holding Shift and dragging the mouse left. You will notice the thinner gradings (which were evenly space at a distance of 0.1 units) will disappear when they become dense enough. Now each thin line is 1 unit apart.
You can scale up the graph also, by holding down Shift and dragging right. Plot the function y=x*sin(1/x)
. Now scale the graph up to view the function closer at (0,0). At maximum zoom, the thinner lines are spaced at a distance of 0.0001 unit. To go back to normal zoom by pressing Ctrl+R and press Ctrl+T to open the Plot Settings dialog. Type 100 at both X Scale and Y Scale and click Set. The values you type here are the number of pixels that the program takes as 1 unit. As you can see, you can achieve uneven scaling (i.e. different scales for x and y) from this dialog box. It is also possible to do this more naturally, drag while pressing Ctrl. Also note that you can cancel any interactive change if you click the right mouse button before leaving the left.
The following scaling modes are implemented:
Uniform Scaling | Shift |
Free Scaling | Ctrl |
Independent Scaling | Alt |
X Scaling | Alt+Shift |
Y Scaling | Alt+Ctrl |
Constant Area Scaling | Ctrl+Shift |
Now clear the function and type a=x*x
, and in the next line type y=(a-1)/(a+1)
. This will draw (as you have probably anticipated) the graph of y=(x2-1)/(x2+1)
. Likewise you can define as many variables you want to. You can also change a variable as a function of itself. For example, putting x=10^x
in the beginning or putting y=Log10(y)
in the end will respectively convert x or y into log-scale. Before they are defined, all variables take the value of Zero.
You can define your own functions too. For example, set the function named f1 to be y=x/2+sin(x)
. Now add another function, and set it to be y=-f1(2*x)/2
. You will notice a kind of 'reflection' of the original function having more 'frequency' appear. Remember functions take the variable x as input, and must put the return value into y. If you need more than one inputs or outputs you can use global variables (i.e. variables starting with an underscore). You can refer to functions which have 'nice' names only. For example you can't refer to any functions whose name has a blank, or starts with a number, or has a special character, even though functions are allowed to have such names. And I have deliberately written the code in such a manner that you can redefine most of the builtin functions (e.g. sin
), but I hope you will use this freedom carefully!
You can put multiple equations in a single line by separating them with semicolons (;
). Also anything after a double slash (//
) in a line is ignored - to let you put comments. One last piece of information - Graph Explorer does not distinguish between uppercase and lowercase. There are some other things in Graph Explorer, most of which are pretty self explanatory.
There are many more built in functions like 'sin' in Graph Explorer. Here is a complete list.
Class | Available Functions |
---|---|
Algebraic | Sqrt, Exp, ln, Log10, Log2 |
Trigonometric, Inverse Trigonometric |
Sin, Cos, Tan, Cosec, Sec, Cot, ArcSin, ArcCos, ArcTan, ATan2, ArcCosec, ArcSec, ArcCot |
Hyperbolic, Inverse Hyperbolic |
Sinh, Cosh, Tanh, Cosech, Sech, Coth, ArcSinh, ArcCosh, ArcTanh ArcCosech, ArcSech, ArcCoth |
Others | Abs, Floor/Box, Ceil, Sign, Frac |
y=2x
which produces error, instead use y=2*x
.
@
' instead of using '^2
', which is slower. Example: y=(x@/2)@+1
instead of y=(x^2/2)^2+1
.
_Pi
, _e
, and _dx
(which is actually the amount x increases per one pixel).
x=10^x
' (i.e. the inverse transformation) to the beginning of your function. To change y into log-scale add 'y=Log10(y)
' to the end of your function. Similar methods will allow you to change into any scale.
That's all! Please feel free to send comments and suggestions to me.
V 1.02 | Fixes and upgrades thanks to suggestions of Larry McNish. Made the function window resizable. Some other minor bug fixes. |
V 1.02a | Some more refinements, and minor bug-fixes. |
V 1.10 | Ability to export to .wmf, .emf, .bmp formats. Ability to copy the picture. |
V 2.00 | Added features like color selection, ability to save, ability to work with multiple functions. Some other minor features. |
V 2.01a | A few more bugs squashed! Some minor changes. |
V 3.00a | Changed name to Arnab's Graph Explorer. Changed file format. Rewrote function codes using RPN concept, which is much faster (especially for complecated functions). Added ability to define functions. Also introduced new function atan2 , new notation @ , and new system variable _dx . Can selectively turn of the grids now. The menus now show a help text in the status bar. Made the Function window resizable (again). Can now plot function in a given domain. Can plot dy/dx or integral of y dx instead of y. Introduced '_Default.grf'. Some other minot additions and bug fixes. |