Re: Labeling points in ListPlot
- To: mathgroup at smc.vnet.net
- Subject: [mg60164] Re: [mg60145] Labeling points in ListPlot
- From: "David Annetts" <davidannetts at aapt.net.au>
- Date: Mon, 5 Sep 2005 02:27:55 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Steve,
>
> I have a series of coordinates such as
> {{x1,y1},{x2,y2},...,{xn,yn}}, a few dozen at most. I want to
> put labels on the points such as p1, p2,...,pn, etc. in some
> desired typeface and size. I also need to control the small
> offset between the label and the dot representing the point.
> Does Epilog have anything to do with this? Help doesn't
> say much about it.
You could use LabeledListPlot ....
Or, if you want to use Epilog, keep in mind that Text[] has an inbuilt
offset of the label from the point so you can have the label printed over,
under or around the coordinate.
For example, with
data = {#, Random[]} & /@ Range[10];
Apart from the obvious method of
Needs["Graphics`"]
LabeledListPlot[data];
You might produce a labelled plot using
txt = Text[#, data[[#]], {-1, 0}] & /@ Range[Length@data]
Show[Graphics[{AbsolutePointSize[5], Point[#] & /@ data}], Epilog ->
txt, Frame -> True];
Or
txt = Text[#, data[[#]], {1, 0}] & /@ Range[Length@data]
Show[Graphics[{AbsolutePointSize[5], Point[#] & /@ data}], Epilog ->
txt,Frame -> True];
Or even
off = If[# < 5, {-1, 0}, {1, 0}] & /@ Range[Length@data];
txt = Text[StringJoin["Point ", ToString[#]], data[[#]], off[[#]]] &
/@ Range[Length@data];
Show[Graphics[{AbsolutePointSize[5], Point[#] & /@ data}], Epilog ->
txt,Frame -> True];
There are other methods, but these will get you started.
Regards,
Dave.