Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: a very simple graphics problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg61072] RE: [mg61050] a very simple graphics problem
  • From: Francisco Gutierrez <fgutiers2002 at yahoo.com>
  • Date: Sun, 9 Oct 2005 01:35:39 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

This help is greatly appreciated, David. I always read your messages with great interest, and I was hoping that my query was answered precisely by you. So thanks. Best regards,
Fg


David Park <djmp at earthlink.net> wrote:
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






  • Prev by Date: RE: a very simple graphics problem
  • Next by Date: Re: Re: MathML, Mozilla, fonts and Mathematica 5.2
  • Previous by thread: RE: a very simple graphics problem
  • Next by thread: Stylesheets don't work unless imported.