MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: How to pass additional parameters to the ticks function?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg108645] Re: How to pass additional parameters to the ticks function?
  • From: "Nasser M. Abbasi" <nma at 12000.org>
  • Date: Fri, 26 Mar 2010 05:34:39 -0500 (EST)

----- Original Message ----- 
From: "Carl K. Woll" <carlw at wolfram.com>
To: "Nasser M. Abbasi" <nma at 12000.org>
Cc: <mathgroup at smc.vnet.net>
Sent: Thursday, March 25, 2010 4:46 AM
Subject: [mg108645] Re: [mg108629] How to pass additional parameters to the ticks 
function?


> On 3/25/2010 5:28 AM, Nasser M. Abbasi wrote:
>> background:
>>
>> When plotting, one can supply a specific tick function, which is
>> automatically called by the Plot code. This allows one to have control on
>> how the ticks are set.
>>
>> This is useful. Here is an example:
>>
>> ------------------------------
>> ticksX[min_, max_] := Table[{i, Style[i, Red, 12], {0.04, 0}},
>>     {i, Ceiling[min], Floor[max]}]
>>
>> Plot[Sin[x], {x, 0, 4}, Ticks ->  {ticksX, Automatic}]
>> -------------------------------
>>
>> The only problem with the above design, is that sometimes one might want 
>> to
>> have additional information inside the ticks function, other than just 
>> the
>> min and the max ticks values, to help it decide what to do.
>>
>> Assume this additional information is some variable, say T.
>>
>> Right now, the only way to access this variable from inside the ticks
>> function, is to have T  be global. I prefer not to use global
>> variables/symbols.
>>
>> It would be much better if Ticks would take additional, and optional
>> parameter, to pass to the ticks function.
>>
>> May be something like
>>
>> ------------------------------------
>> ticksX[min_, max_,extra_List] :=  If[ extra[[1]]==.... etc.....]
>>
>>
>> Plot[Sin[x], {x, 0, 4}, Ticks ->  {ticksX[{T}], Automatic}]
>> ---------------------------------------
>>
>> And now inside my ticks function, I can access the additional information 
>> if
>> I want to use it to help me set the ticks.
>>
>> If the above is not possible in version 7, is it possible to make this
>> enhancement available in version 8?
>>
>> --Nasser
>>
>>


> Why can't you do:
>
> ticksX[extra_][min_,max_] := If[...
>
> ?
>
> Carl Woll
> Wolfram Research


Thanks Carl. That worked!  But how did you know that? When I looked at the 
documenation for Ticks function, it only talks about min,max:

"The tick mark function func[Subscript[x, min],Subscript[x, max]] may return 
any other tick mark option."

and all the examples, shows only min,max arguments. So I did not know I can 
pass additional arguments (may be I should have tried).

Or is this trick common in general? How does one know which function then 
takes extra arguments like this or not? And why did you type it as

               ticksX[extra_][min_,max_]

and not as

               ticksX[min_,max_,extra_]

Is there an advantage of one over the other?

--Nasser 



  • Prev by Date: Mathematica needs better support for automatic zooming into a plot
  • Next by Date: Re: Solving differential equations in Mathematica 7.0
  • Previous by thread: Re: How to pass additional parameters to the ticks function?
  • Next by thread: Re: How to pass additional parameters to the ticks function?