Re: Flipping axes on Graphics
- To: mathgroup at smc.vnet.net
- Subject: [mg97417] Re: Flipping axes on Graphics
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Fri, 13 Mar 2009 04:46:39 -0500 (EST)
- References: <gpad36$n1p$1@smc.vnet.net>
sidney at jigsaw.nl wrote:
> Dear all,
>
> I am looking for a way to flip the direction of an axis that is used
> to render a Graphics object.
>
> For example, I would like to be able to do Plot[Sin[x], {x, 0, 2*Pi}]
> but the top-left corner of the rendered Graphics object would
> correspond to coordinate (0,-1) while the bottom-left corner would
> correspond to (0, +1); effectively, the graph would need to be
> mirrored in the x-axis.
>
> I've skimmed all Graphics options and it seems the convention that
> increasing x is rendered left-to-right and increasing y is rendered
> bottom-to-top is hard-wired into Graphics. Would there be a clever way
> to get around this?
>
Just flip the function, then relabel the axes. Here's an example:
f[x_] := Sin[x] + x^2/10
Plot[f[x], {x, -5, 5}]
gr = Plot[f[-x], {x, -5, 5}]
invertXTicks[gr_Graphics] := Module[{xticks, yticks},
{xticks, yticks} = FullOptions[gr, Ticks];
{Replace[
xticks,
{position_, label_Real, rest__} :> {position, -label, rest}, {1}],
yticks}
]
Show[gr, Ticks -> invertXTicks[gr]]