Re: precision of y-axis values in plot
- To: mathgroup at smc.vnet.net
- Subject: [mg123798] Re: precision of y-axis values in plot
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Mon, 19 Dec 2011 07:22:30 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jccgik$min$1@smc.vnet.net> <jcf8kl$70m$1@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
The behavior of Ticks -> func is not explained in Help for Ticks -- and no
examples are given -- so I suppose any guess is as good as another. It's
pretty clear that Table[{i, NumberForm[i, {3, 4}]}, {i, min, max, 1/7}]
should yield tick marks separated by about
1/7.
0.142857
The question is what "min" and "max" arguments are used.
When I run this code:
tickFunction[min_, max_] := Table[{i, NumberForm[i, {3, 4}]}, {i, min,
max, 1/7}]
Plot[Sin[x], {x, 0, 1}, Ticks -> tickFunction]
The ticks I see are {0.1220, 0.2650, 0.4081, 0.5510, .6930, .8360,
0.9790}, which are spaced just about right:
differences =
Subtract @@@
Partition[
ticks = {0.1220, 0.2650, 0.4081, 0.5510, .6930, .8360, 0.9790}, 2,
1]
-7 Rationalize@Mean@%
{-0.143, -0.1431, -0.1429, -0.142, -0.143, -0.143}
5999/6000
xmin = 0.1220 should be the first tick mark, and xmax could be 1.12186:
Through[{First, Last}@ticks] + {0, 1}/7
(tickFunction @@ %)[[All, 1]]
{0.122, 1.12186}
{0.122, 0.264857, 0.407714, 0.550571, 0.693429, 0.836286, 0.979143}
but those are not the plotted tick marks. (Close, but no cigar.)
If we modify tickFunction to get the arguments directly, a very different
result arises:
tickFunction[min_, max_] := (limits = {min, max};
Table[{i, NumberForm[i, {3, 4}]}, {i, min, max, 1/7}])
Plot[Sin[x], {x, 0, 1}, Ticks -> tickFunction];
limits
(tickFunction @@ limits)[[All, 1]]
{-0.0175306, 0.859002}
{-0.0175306, 0.125326, 0.268184, 0.411041, 0.553898, 0.696755, \
0.839612}
Those are really, REALLY not the tick marks on the plot.
Don't you just love the documentation?
Bobby
On Sun, 18 Dec 2011 03:36:44 -0600, Armand Tamzarian
<mike.honeychurch at gmail.com> wrote:
> On Dec 17, 6:44 pm, Nathan <nhroll... at gmail.com> wrote:
>> On Dec 16, 4:04 am, Armand Tamzarian <mike.honeychu... at gmail.com>
>> wrote:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> > On Dec 15, 9:01 pm, Nathan <nhroll... at gmail.com> wrote:
>>
>> > > Hi,
>>
>> > > I'm relatively new to Mathematica. I'm having a problem with the
>> > > precision of the y-axis values of some of my plots. All of the data
>> > > labels show up as "2422.3", which isn't very informative since
>> they're
>> > > all the same. I need the plot to show two more decimal point values
>> > > (ex: "2422.305"). I've looked high and low and can't find any way
>> to
>> > > do this. Any ideals? Thanks!
>>
>> > > Nathan.
>>
>> > What you need to do is make a tick function and wrap NumberForm around
>> > your labels and set the number of decimal points that you want. If you
>> > do a search on here for tick functions and NumberForm you should find
>> > many examples.
>>
>> > Mike
>>
>> Mike,
>>
>> Thank you for your help. Forgive my ignorance, but what should I put
>> in the NumberForm function? Here's the plot command I'm using:
>>
>> plot2T := Plot[LT2[T, \[Lambda]], {T, min2, max2}, Frame -> True,
>> FrameLabel -> {{"Task Execution Time (s)", ""}, {"Optimal CSCP
>> Checkpoint Interval (s)", ""}}, FrameStyle -> {{Black, White},
>> {Black, White}}, Axes -> {False, False}]
>>
>> Based on what you said, I assume I should add something like the
>> following to the Plot function:
>> Tick -> NumberForm[ N[?], 8]
>>
>> However, I'm not sure what should replace the ?. Will you please
>> indulge a newbie with a specific example? Thanks!
>
>
> tickFunction[min_, max_] := Table[{i, NumberForm[i, {3, 4}]}, {i, min,
> max, 1/7}]
>
> Plot[Sin[x], {x, 0, 1}, Ticks -> tickFunction]
>
> You will need to read the documentation on Ticks and NumberForm to get
> this to do exactly what you want.
>
> Mike
>
--
DrMajorBob at yahoo.com
- Follow-Ups:
- Re: precision of y-axis values in plot
- From: Heike Gramberg <heike.gramberg@gmail.com>
- Re: precision of y-axis values in plot