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}] >