Re: How do I put Arrow Heads on the ends of the Axis of my plots?
- To: mathgroup at smc.vnet.net
- Subject: [mg35598] Re: How do I put Arrow Heads on the ends of the Axis of my plots?
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Mon, 22 Jul 2002 02:10:55 -0400 (EDT)
- References: <ah8off$aru$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
David, Here is a function that lets us do this to an already created graphics. One of the catches that code deals with is that unless we specify PlotRange numerically Mathematica will choose its own PlotRange that cannot be predicted in advance. Also, I use a trick to load the package Graphics`Arrow at the right stage when the function is entered and so that it will not be seen by a user when ?AddArrowsOnAxes is entered. AddArrowsToAxes[gr_, Needs["Graphics`Arrow`"] /. _ -> Sequence[], opts___?OptionQ] := Module[{oxx, oyy, xxmin, xxmax, yymin, yymaxx, xxst, yyst, Arrow = Graphics`Arrow`Arrow }, {{oxx, oyy}, {{xxmin, xxmax}, {yymin, yymax}}, {xxst, yyst}} = Last /@ AbsoluteOptions[ Graphics[gr], {AxesOrigin, PlotRange, AxesStyle}]; Show[gr, Prolog -> {Append[xxst, Arrow[{xxmin, oyy}, {xxmax, oyy}, opts]], Append[yyst, Arrow[{oxx, yymin}, {oxx, yymax}, opts]]}] ]; Test: AddArrowsToAxes[gr1,HeadCenter->0.7] ; AddArrowsToAxes[gr1,Graphics`Arrow`HeadCenter->0.7] ; -- Allan --------------------- Allan Hayes Mathematica Training and Consulting Leicester UK www.haystack.demon.co.uk hay at haystack.demon.co.uk Voice: +44 (0)116 271 4198 Fax: +44 (0)870 164 0565 "david barens" <barnes at pullman.com> wrote in message news:ah8off$aru$1 at smc.vnet.net... > How do I put Arrow Heads on the ends of the Axis of my plots? > >