From: Nasser M. Abbasi on
Version 7:

Many times I find I need to change the Plot Ticks (mostly to make the ticks
display in units of Pi for example instead of just in pure real numbers).

The only way I know how to do this now is this:

I build my own Ticks lists, and then do

Plot[...,Ticks->{myXticks,myYTicks},....]

But the problem with this, is tha I have to guess (Actually I do little more
than guessing) to obtain a good number of ticks to use, else I get too few
ticks or too many.

But what would be better is to use the Ticks Mathematica uses on the plot
before I change the ticks myself. The reason is that I would know the most
optimal number of ticks to use.

So, now What I want to do is this: First plot, but do not display, using
default Mathematica ticks. Then use AbsoluteOptions to get the ticks
information, then pull out the x-ticks list and the y-ticks from these,
modify each tick value to the value I want using my own transformation, then
set the plot again but now using the changed x and y ticks, then plot and
display.

But I am stuck after getting the ticks information from the current plot. As
I am not able to figure how to pull out the x-ticks and y-ticks out of it. I
do not know how these are encoded in there. Here is what I do

p = Plot[Sin[x], {x, 0, 10}, Ticks -> Automatic]
t = Ticks /. AbsoluteOptions[p]

You can see from the plot, that x-ticks are {2,4,6,8,10} and y-ticks are
{-1.0,0,.5,1}

But I do not know how to pull these 2 lists out of the "t" variable above. I
just need the list of numbers (do not care about the other attributes such
as Thickness and GrayLevel and all that.)


Dimensions[t]
{2}

Dimensions[t[[1]]]
{21, 4}

Dimensions[t[[2]]]
{41, 4}

Are these things documented somewhere? Looking at FullForm[t] was not much
help.

thanks,
--Nasser



From: Nasser M. Abbasi on



>
> On 16.03.2010 10:47, Nasser M. Abbasi wrote:
>> Version 7:
>>
>> Many times I find I need to change the Plot Ticks (mostly to make the
>> ticks
>> display in units of Pi for example instead of just in pure real numbers).
>>
>> The only way I know how to do this now is this:
>>
>> I build my own Ticks lists, and then do
>>
>> Plot[...,Ticks->{myXticks,myYTicks},....]
>>
>> But the problem with this, is tha I have to guess (Actually I do little
>> more
>> than guessing) to obtain a good number of ticks to use, else I get too
>> few
>> ticks or too many.
>>
>> But what would be better is to use the Ticks Mathematica uses on the plot
>> before I change the ticks myself. The reason is that I would know the
>> most
>> optimal number of ticks to use.
>>
>> So, now What I want to do is this: First plot, but do not display, using
>> default Mathematica ticks. Then use AbsoluteOptions to get the ticks
>> information, then pull out the x-ticks list and the y-ticks from these,
>> modify each tick value to the value I want using my own transformation,
>> then
>> set the plot again but now using the changed x and y ticks, then plot and
>> display.
>>
>> But I am stuck after getting the ticks information from the current plot.
>> As
>> I am not able to figure how to pull out the x-ticks and y-ticks out of
>> it. I
>> do not know how these are encoded in there. Here is what I do
>>
>> p = Plot[Sin[x], {x, 0, 10}, Ticks -> Automatic]
>> t = Ticks /. AbsoluteOptions[p]
>>
>> You can see from the plot, that x-ticks are {2,4,6,8,10} and y-ticks are
>> {-1.0,0,.5,1}
>>
>> But I do not know how to pull these 2 lists out of the "t" variable
>> above. I
>> just need the list of numbers (do not care about the other attributes
>> such
>> as Thickness and GrayLevel and all that.)
>>
>>
>> Dimensions[t]
>> {2}
>>
>> Dimensions[t[[1]]]
>> {21, 4}
>>
>> Dimensions[t[[2]]]
>> {41, 4}
>>
>> Are these things documented somewhere? Looking at FullForm[t] was not
>> much
>> help.
>>



> Hi Nasser,
> I think you make your life more cumbersum than necessary. Simply make a
> Plot in units of Pi like e.g.:
> Plot[Sin[x Pi], {x, 0, 3}, AxesLabel -> {"x/Pi"},
> PlotLabel -> "Sin[x]"]
> Daniel

I tried the above, but the ticks are not in units of Pi? I need the actual
Ticks to display as "Pi/2", "Pi/4", etc...

Thanks,
--Nasser










 | 
Pages: 1
Prev: Calling kernel.dll from Mathematica
Next: Findroot