Re: Locating text in Show
- To: mathgroup at smc.vnet.net
- Subject: [mg8286] Re: [mg8205] Locating text in Show
- From: Allan Hayes <hay at haystack.demon.co.uk>
- Date: Sun, 24 Aug 1997 04:46:27 -0400
- Sender: owner-wri-mathgroup at wolfram.com
"Steven T. Hatton" <hattons at cpkwebser5.ncr.disa.mil>
in [mg8205] Locating text in Show
writes as below the line ***************
Steven
1. To get equally scaled coordinates (so that circles look like
circles ) use
AspectRation-> Automatic
*not *Aspect Ratio -> 1, which just makes the picture square.
2. Offsets for text need to be set explicitely:
Text["text", {x,y},{ox,oy}]
<< Geometry`Polytopes`
dots = Vertices[Octagon];
sh1= Show[
Graphics[{
Circle[{0, 0}, 1], (*drawn first*)
PointSize[0.03], Point /@ dots (*goes on top*)
}],
AspectRatio -> Automatic,
PlotRange -> All
];
sh2 =Show[Graphics[{Thread[Text[{A, B, C, D},
{dots[[1]], dots[[2]], dots[[3]], dots[[4]]},
{-2, -2}], List, 2]}]];
3. In the preceding display, since no options have been set not
all the letters show, and the scaling is not even. If you want to
see things properly then repeated the earlier options. But this is
only to do with appearence - the data that we need is there to use.
Show[sh1,sh2];
4. The options fron sh1 are inherited to give the desired aspect
ratio and show the letters.
5. If you are not interested in a visual check on the construction,
then only put in the options at the end
Show[sh1,sh2, AspecRatio -> Automatic, PlotRange->All]
6. We can also do it at one go:
Show[
Graphics[{
Circle[{0, 0}, 1],
PointSize[0.03],
Point /@ #1,
Thread[
Text[{A, B, C, D},
Take[#1, 4], {-2, -2}],
List,
2
]
}]&[Vertices[Octagon]],
AspectRatio -> Automatic,
PlotRange -> All
];
Allan Hayes
hay at haystack.demon.co.uk
http://www.haystack.demon.co.uk/training.html
voice:+44 (0)116 2714198
fax: +44 (0)116 2718642
Leicester, UK
***************
I am trying to label points in a graph that I am generating with the
following. Before I attempt to overlay the two graphics objects I want
to get the text to locate in conjunction with the points on the circle.
In other words I need to locate the text at the vertices of the octagon
with an offset. I am finding that all but the first three points of
"dots" are located at the bottom of the graph. Does anybody have some
insight into what is going on here?
<< Geometry`Polytopes`
dots=Vertices[Octagon]
Show[Graphics[{{PointSize[.03], Point /@ dots},{Circle[{0,0},1]}},
AspectRatio -> 1]]
Show[Graphics[{
Thread[Text[{A, B, C,
D},{dots[[1]],dots[[2]],dots[[3]],dots[[4]]} ]]},
AspectRatio->1,PlotRange->All]]