Francisco,
This is another case where the Mathematica graphics paradigm leads people
astray, or at least makes things very complicated for them. This is because
of the switching of graphical levels between Plots and graphical primitives.
It would be much simpler if everything was treated as a graphic primitive.
In this case, the solution is very simple. You don't need ListPlot. Throw it
in the garbage can. Trash it. Kaput. Instead you can just Map the Point
primitive onto your points.
You last line escaped the triangle because I think you left out the decimal
point. (I also used AbsolutePointSize instead of PointSize. You may wish to
adjust my choice. Also, I think one should use AspectRatio here.) Fixing
jo5, we then have...
Needs["Graphics`Colors`"]
triangulo = Line[{{0, 0}, {0.5, 0.5}, {1, 0}, {0, 0}}];
milista = {{0.589286, 0.330357}, {0.553571, 0.4375}, {0.552632,
0.429825}, {0.508772, 0.0526316}, {0.578947, 0.342105}, {0.57,
0.26}, {0.57, 0.29}, {0.48, 0.25}};
jo1 = Line[{{0.5, 0}, {0.5, 0.5}}];
jo2 = Line[{{0.4, 0.4}, {0.8, 0}}];
jo3 = Line[{{0.4, 0.4}, {0.8, 0}}];
jo4 = Line[{{0.1, 0.1}, {0.2, 0}}];
jo5 = Line[{{0.8, 0}, {0.9, 0.1}}];
Show[Graphics[
{triangulo, jo1, jo2, jo3, jo4, jo5,
AbsolutePointSize[5], Point /@ milista}],
AspectRatio -> Automatic,
PlotRange -> All,
Background -> Linen,
ImageSize -> 500];
Everything was at the primitive graphics level and we could just draw one
item after another, adding in the point size where we wanted it to take
effect.
To color and label the points you could use something like...
Show[Graphics[
{triangulo, jo1, jo2, jo3, jo4, jo5,
AbsolutePointSize[5],
MapThread[{Hue[#1], Point[#2], Black,
Text[#3, #2, {-1.5, 0}]} &, {Table[i, {i, 0, 0.8, 0.8/7}],
milista, Range[Length[milista]]}, 1]}],
AspectRatio -> Automatic,
TextStyle -> {FontSize -> 10},
PlotRange -> All,
Background -> Linen,
ImageSize -> 600];
If you wanted to add curves to your plot, such as you might create with
Plot, then you could try the DrawGraphics package at my web site, which
automatically converts curve plotting to primitive graphics. But here you
don't need it because everything is primitive graphics to begin with.
David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/
From: Francisco Gutierrez [mailto:fgutiers2002 at yahoo.com]
To: mathgroup at smc.vnet.net
Dear Friends:
This is a quite primitive problem (actually, 2 related problems).
I have a set of points, which I want to put into a triangle and then draw
some lines.
The triangle I build in the following way=
triangulo=Line[{{0,0},{0.5,0.5},{1,0},{0,0}}];
The I christen my set of points:
milista={{0.589286,0.330357},{0.553571,0.4375},{0.552632,0.429825},{0.508772
,0.0526316},{0.578947,0.342105},{0.57,0.26},{0.57,0.29},{0.48,0.25}}
I make a graphic:
miejemplito=ListPlot[milista, PlotStyle®{PointSize[0.03]} ]
Then I put them into the triangle:
Show[Graphics[triangulo], miejemplito, PlotRange®All]
All this works fine. I start to draw the lines:
jo1=Line[{{0.5,0},{0.5,0.5}}];
jo2=Line[{{0.4,0.4},{0.8,0}}];
jo3=Line[{{0.4,0.4},{0.8,0}}];
jo4=Line[{{0.1,0.1},{0.2,0}}];
and then
Show[Graphics[triangulo],Graphics[jo1],Graphics[jo2],Graphics[jo3],
Graphics[jo4], miejemplito, PlotRange®All]
So far, so good. However, when I add
jo5=Line[{{0.8,0},{0.9,01}}];
and then give the directive
Show[Graphics[triangulo],Graphics[jo1],Graphics[jo2],Graphics[jo3],
Graphics[jo4],Graphics[jo5], miejemplito, PlotRange®All], I get an extremely
awkward and badly drawn graphic, and the last line (jo5) escapes the
triangle.
a. How can I correct the problem?
b. How can I put labels to each point (and eventually colour them
differently)?
Thanks in advance
Fg