Bug fix: Two-dimensional plots with coords
There are some bugs in changecoords in the plots package affecting two-dimensional plots that use the coords option: contourplot does not work with this option, and even plot fails with a coordinate system having parameters specified in functional style:
> with(plots):
Warning, the name changecoords has been redefined
> contourplot(x-y, x=0..1,y=0..1,coords=polar);
Error, (in plot/iplot2d) cannot convert to coordinate system polar
> plot(1, x=0..1, coords=logcosh(2));
Error, (in plot/adaptive) unknown optional argument coords = logcosh(2)
To remedy these bugs, I have written a replacement for changecoords for two-dimensional coordinate systems, called changecoords2d . This function is part of the Maple Advisor Database library . Instead of making a plot with the coords option, you can first produce the plot without the coords option and then call changecoords2d with the plot as first argument and the name of the coordinate system as second argument. All other options (e.g. scaling , colour or axes ) should be part of the first plotting command, not the changecoords2d .
Note that
plot(f(x),x=a..b)
plots the second variable in Cartesian coordinates,
, as a function of the first variable
. In polar coordinates it is more usual to plot the first variable,
, as a function of the second,
(and this is what
plot(f(theta), theta=a..b, coords=polar)
does). However, that could not be accomplished by
changecoords(plot(f(x),x=a..b), polar)
: it would give you
as a function of
. Instead of
polar
, you can use
reverse(polar)
, which interchanges the roles of the two variables and gives you
as a function of
.
You can also use
reverse
with any of the other coordinate systems.
> changecoords2d(plot(cos(x),x=-Pi/2 .. Pi/2, scaling=constrained), reverse(polar));
> changecoords2d(pointplot([seq([1,7*Pi/10*i],i=0..20)], style=line, colour=blue,scaling=constrained), polar);
> changecoords2d(implicitplot(x=y,x=0..1,y=0..1),logcosh);
> changecoords2d(contourplot(x-y, x=0..1, y=0..1, axes=box), logcosh);
> changecoords2d(plot(1, x=0..1), reverse(logcosh(2)));
See also: addcoords , changecoords , changecoords2d , contourplot , coords , plot(coords) , transform
Maple Advisor Database, R. Israel 1999