Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: ArrayPlot coordinates scaling for overlays

  • To: mathgroup at smc.vnet.net
  • Subject: [mg109202] Re: ArrayPlot coordinates scaling for overlays
  • From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
  • Date: Fri, 16 Apr 2010 05:54:03 -0400 (EDT)

Hi,

use DataRange to tell Mathematica about the rectangle where your
ArrayPlot is in

img = Import["http://sipi.usc.edu/database/misc/5.1.12.tiff";];
Show[{
  ArrayPlot[img[[1]], DataRange -> {{0, 2 Pi}, {-1, 1}}, 
   ColorFunction -> GrayLevel],
  Plot[Sin[x], {x, 0, 2 Pi}]
  }]

and you can overlay different plots.

Cheers
Patrick

On Wed, 2010-04-14 at 23:13 -0400, fd wrote:
> All
> 
> This seems a simple problem I not finding an easy solution.
> 
> I have a plot obtained from an ArrayPlot, for which the coordinates
> are the indexes of the matrix being plotted; I want to overlay to this
> plot some other plot, say, from DensityPlot. I have to tell
> Mathematica that the bottom left corner of the ArrayPlot is {xi,yi}
> and the upper right is {xf,yf}.
> 
> It would be nice as well to know how you could do this with a raster
> image in general.
> 
> I was trying to use ListDensityPlot, but for the specific problem I
> dealing with it is excruciatingly slow.
> 
> I'm also working to re-scale the FrameTicks by defining a new
> ArrayPlot function, with limited success. Below the code I'm working
> on.
> 
> Would anyone have an idea about this? Thanks in advance for any help.
> Felipe
> 
> arrayPlotScale[array_List, {xmin_, xmax_}, {ymin_, ymax_}] :=
>  Module[{deltas =
>     Reverse[{ymax - ymin, xmax - xmin}/Dimensions[array]],
>    n = Dimensions[array] // Reverse},
>   ArrayPlot[array,
>    FrameTicks ->
>     Reverse[{Table[{i, xmin + i deltas[[1]] }, {i, 0, n[[1]], 20}],
>       Table[{n[[2]] - i, ymin + i deltas[[2]]}, {i, 0, n[[2]],
> 10}]}]]]
> 
> test = Table[i j, {i, 1, 100}, {j, 100, 1, -1}];
> 
> arrayPlotScale[test, {0, 16}, {0, 100}]
> 



  • Prev by Date: Re: NIntegrate Confusion
  • Next by Date: Re: piecewise function
  • Previous by thread: ArrayPlot coordinates scaling for overlays
  • Next by thread: Re: ArrayPlot coordinates scaling for overlays