From: JIM M. <ji...@ji...> - 2006-08-01 16:04:34
|
> There are two kinds of images in matplotlib -- AxesImage and > FigureImage. By definition, the AxesImage is interpolated to fit into > the Axes box. You can control the aspect ratio of the interpolation, > but it will be interpolated. FigureImage, on the other hand, performs > a pixel dump to the postscript canvas at the location you tell it to > -- see examples/figimage_demo.py. It should like you are more > interested in the latter. I've had a play with FigureImage and I can't see how to make it draw the image inside the axes, it seems to only draw it in the background. > If the figure image doesn't work for you, describe your use-case in > some detail and why neither work and we'll see if we can accommodate > it. OK, so imshow does exactly what I want. The only problem is the resampling. Each pixel represents a value calculated at a point on a 318x301 grid, so in resampling I loose or distort some of the fine detail. I do not understand why the image need to be resampled when using a vector based backend. I understand this is necessary for a raster backend, but surely with a vector backend you can just scale the image keeping the 318x301 resolution. I know this is possible in Postscript at least as I've produced the desired output by amalgamating two files. See http://jimmacdonald.co.uk/matplotlib/image_CORRECT_ps_hacked.eps I looked at using pcolor instead, but the postscript files where too big (~20MB) due to the large number of tiles (this is how I used to do it in matlab). JIM ---- |