Re: Colored Tick Labels?
- To: mathgroup at smc.vnet.net
- Subject: [mg66928] Re: Colored Tick Labels?
- From: bghiggins at ucdavis.edu
- Date: Sun, 4 Jun 2006 01:10:16 -0400 (EDT)
- References: <e5reku$h2e$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Not sure I have a complete answer, but here are some possibilities to
examine:
Suppose you have the following plot
plt = Plot[Sin[x], {x, -1, 1}]
You can extract the Ticks from this plot using AbsoluteOptions and then
modify them. In the following example I make the x tick values Blue and
the y tick values Red
myTicks = {(Ticks /. AbsoluteOptions[plt,
Ticks])[[1]] /. {x_Real, y_Real, z__} -> {x, StyleForm[y,
FontColor -> Blue], z}, (Ticks /. AbsoluteOptions[plt,
Ticks])[[
2]] /. {x_Real, y_Real, z__} -> {x,
StyleForm[y, FontColor -> Red], z}}
The following plot has the colored ticks
Plot[Sin[x], {x, -1, 1}, Ticks -> myTicks]
In the same way one can write code to not only change the tick colors
but also alter the values displayed. If you do not have the original
Ticks option for your plot, then you have to construct them yourself
xTicks = {{-1, A}, {0.0, 0}, {1, B}};
xColorTicks = Map[{#[[1]], StyleForm[#[[2]], FontColor -> Red]} &,
xTicks];
Plot[Sin[x], {x, -1, 1}, Ticks -> {xColorTicks, Automatic}]
Now if you you want to generate the ticks without access to the plot
graphic object, you can write your own Tick function as follows
TickPosition[x0_Real, x1_Real, num_Integer?
Positive] := Module[{delta},
delta= (x1 - x0)/(num - 1);
Table[{x, StyleForm[x, FontColor -> Red]}, {x, x0, x1, delta}]]
plt = Plot[Sin[x], {x, -3, 3}, Ticks -> {TickPosition[#1, #2, 7] &,
Automatic}]
The above TickPosition function is quite crude, but is does take as its
augments the values from the plot range. See Tom Wickham-Jones book
Mathematica Graphics for ways to spruce up your TickPosition function
I do not know away to autimatically set the color of the tick labels.
Hope this helps,
Cheers,
Brian
AES wrote:
> To create frames with different scales and tick labels on each axis, I
> habitually use syntax like:
>
> xTicks={{-1,"-Pi"}, {0.5,"0"}, {1,"Pi"}}
>
> and so on, and then
>
> FrameTicks->{xTicks, yTicks, topTicks, rightTicks}
>
> Question: Any simple way to apply a different color to the set of ticks
> on each axis ***without having to insert a syntax like
>
> StyleForm["-Pi", FontColor->Red]
>
> into each and every individual quoted "-Pi" label separately?
- Follow-Ups:
- Re: Re: Colored Tick Labels?
- From: Gianluca Gorni <gorni@dimi.uniud.it>
- Re: Re: Colored Tick Labels?