Re: Plot Axis Unit Conversions
- To: mathgroup at smc.vnet.net
- Subject: [mg98880] Re: Plot Axis Unit Conversions
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Mon, 20 Apr 2009 19:13:14 -0400 (EDT)
- References: <gsh17u$or$1@smc.vnet.net>
As a follow-up to my previous post:
The concept is easy to generalize to other unit scale conversions
using the Units package.
Needs["Units`"]
convertedScale[oldUnit_, newUnit_][min_, max_] :=
Apply[{#1/(Convert[oldUnit, newUnit]/newUnit ), ##2} &,
AbsoluteOptions[
Plot[x, {x, Convert[oldUnit, newUnit]/newUnit min,
Convert[oldUnit, newUnit]/newUnit max}, Frame -> True,
FrameTicks -> {Automatic, None, None, None}], FrameTicks][[1, 2,
1]], 1]
Now you can go wild:
Plot[0.25 Sin[x], {x, 0, 100}, Frame -> True,
FrameTicks -> {convertedScale[Meter, LightYear],
convertedScale[Meter, Centi Meter], convertedScale[Meter, Mile],
convertedScale[Meter, Yard]},
FrameLabel -> {"x-axis (in LightYear)", "y-axis (in cm)",
"x-axis (in Miles)", "y-axis (in yards)"}]
Works for every unit listed in Units/guide/UnitsPackage except
temperatures. For these you have to replace Convert for
ConvertTemperature.
Cheers -- Sjoerd
On Apr 20, 7:29 am, unknowno... at gmail.com wrote:
> Hello everyone,
>
> I am working on a notebook involving a flutter analysis of a flat
> plate in a wind tunnel. All of the equations involve metric units, but
> most of the physical measurements of size I have are in inches. In
> order to maintain a consistent system of units, I would like to plot
> the axis units in metric and English units. Specifically, I have a
> plot for the critical flutter speed in units of m/s versus the chord
> length in meters, and I want to overlay an x-axis, possibly on the
> top, that will display the equivalent length in inches (i.e,
> xinches=x*10000/254) without messing up the graph. At the very least,
> I would like to display it in centimeters instead of meters for better
> clarity. I do NOT want to recalculate the function using inches - just
> display the conversion. It would be nice if I could display it in both
> inches and centimeters at the same time.
>
> This is an absolute breeze to do in another system, but I haven't been
> able to find anything specifically dealing with scaling of axes for
> Mathematica. Anyone have any ideas?
>
> Thanks very kindly!