MathGroup Archive 2002

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

Search the Archive

Re: How to convert a matrix into a graph?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg37807] Re: How to convert a matrix into a graph?
  • From: "Allan Hayes" <hay at haystack.demon.co.uk>
  • Date: Wed, 13 Nov 2002 01:12:57 -0500 (EST)
  • References: <aqqdcu$sec$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Jia,
There are many ways to do this - here is one.

First we need a scaling function to take the min to take the min of the
range ff values that will be met over series of  matrices to 0 and its max
to 1.


sc = Interpolation[{{0, 0}, {15, 1}},
   InterpolationOrder -> 1]

Now for the graphics coding:

ShowMatrix[mat_] :=
Module[{di, dj},
   {d1, d2} = Dimensions[mat];
    Show[Graphics[MapIndexed[{GrayLevel[sc[#1]],
         PointSize[1/(2*d1)], Point[#2]} & ,
       Reverse[mat], {2}], GridLines ->
       {Table[n, {n, 1, d1}], Table[n, {n, 1, d2}]},
      PlotRange -> {{0.5, d1 + 0.5}, {0.5, d2 + 0.5}},
      Frame -> True,
      (FrameTicks -> {{}, Table[{n, #2 - n + 1},
           {n, 1, #2}], Table[{n, n}, {n, 1, #1}],
          {}} & ) @@ Dimensions[mat],
    AspectRatio -> Automatic]]
]

You might want to delete some of the features; especially if the dimensions
of the matrix are very big.
We could, for example, make the point sizes vary with the size of the matrix
entry or superimpose the entries on the points


A different approach would be to use Raster or use disks instead of points.

Check

--
Allan

---------------------
Allan Hayes
Mathematica Training and Consulting
Leicester UK
www.haystack.demon.co.uk
hay at haystack.demon.co.uk
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565


"Jia Guo" <jiaguo at uiuc.edu> wrote in message
news:aqqdcu$sec$1 at smc.vnet.net...
> Hi,
>
> My problem is how a matrix can be converted into a graph so that each
> element in the matrix represents dot: The value of the element is
> corresponding to the darkness of the dot. The position of the element
> in the matrix is corresponding to the position of the dot in the
> graph.
>
> Thank you!
>
> Jia
>






  • Prev by Date: Re: Finding many complex roots
  • Next by Date: Re: Literate Programming (Was: Comments are KILLING me)
  • Previous by thread: Re: How to convert a matrix into a graph?
  • Next by thread: Re: How to convert a matrix into a graph?