Plotting Functions and Graphs in Wolfram|Alpha
Plotting functions in the Cartesian plane is such a simple task with Wolfram|Alpha: just enter the function you are looking to graph, and within seconds you will have a beautiful result. If you are feeling daring, enter a multivariate function, and the result will be a 3D Cartesian graph. Wolfram|Alpha is certainly not limited to Cartesian plotting; we have the functionality to make number lines, 2D and 3D polar plots, 2D and 3D parametric plots, 2D and 3D contour plots, implicit plots, log plots, log-linear plots, matrix plots, surface of revolution plots, region plots, list plots, pie charts, histograms, and more. Furthermore, in Wolfram|Alpha we can generate specialized plots for illustrating asymptotes, cusps, maxima, minima, inflection points, saddle points, solutions of ordinary differential equations, poles, eigenvalues, series expansions, definite integrals, 2D inequalities, interpolating polynomials, least-squares best fits, and more. Let’s take a look at the plotting functionality in Wolfram|Alpha, some of which is newly improved!
We will start simple with 2D Cartesian plots.
Here we plot sin(√7x)+19cos(x) for x between -20 and 20.
If we change √7 to √-7, then we get a plot of the real and imaginary parts.
In both these examples we have given Wolfram|Alpha a horizontal plot range. What happens if we don’t give Wolfram|Alpha a range?
We still get back a plot with all of its defining features. One of the unique features of Wolfram|Alpha is the functionality to automatically guess an appropriate plot range for univariate and bivariate functions. Here is another example:
So far we have told Wolfram|Alpha that we’re specifically requesting a plot. If we simply enter a univariate expression without the prefix “plot”, then we’ll always get a Cartesian plot in addition to a number of other pieces of information. Try:
One important difference is that the image sizes are larger if you specifically ask for a plot.
You can also plot more than one function at a time.
The underlying Mathematica function used in all the examples is Plot. By clicking the bottom left of the images and then “Copyable plaintext”, you can see the Mathematica code used to generate the plots. For example:
The code can then be evaluated in Mathematica.
Now let’s give Wolfram|Alpha a challenge and plot bivariate functions. Start by plotting y^2 cos(x) for x between -6 and 6 and y between -2 and 2.
As in the univariate case, Wolfram|Alpha has the capability to find an appropriate plot range for a bivariate function, the code for which is under continuous development. If Wolfram|Alpha fails to generate a plot, then it’s most likely because the code that determines a plot range has been unable to
find a region where the function has interesting behavior. In such cases you can always manually enter a plot range like we did in the example above. Here are a couple of examples:
What happens if you want to plot more than one bivariate function?
Wolfram|Alpha will return an individual plot of each function in the list. Here are a couple more examples to test out:
- plot (1 – x)/(2 x + 7 y), 5 x^2 – 3y^2 + 7 x y, (x + 2 y)^4
- plot sqrt (1 + x y), sqrt (x^2 – y^2 + 2 x y)
A new feature in Wolfram|Alpha is the functionality to plot the real and imaginary parts of complex-valued bivariate functions. Here are a couple of examples:
In all of these examples Wolfram|Alpha returned a contour plot in addition to the 3D plot. A nice way to see the connection between the 3D and contour plots is to click the “Show contour lines” button. Note that the 3D and contour plots will always use the same plot range.
All of the 3D plots were made using Mathematica‘s function Plot3D; the contour plots were made using ContourPlot. In both cases the Mathematica code for generating the images can be found by clicking the plots.
You have now had the opportunity to view the plotting abilities of Wolfram|Alpha in 2D and 3D planes. Still not convinced? Try to plot your favorite function in Wolfram|Alpha, and be sure to share your results with us!