Hello,

I am using matplotlib to create postscript and SVG files. I am  
currently using imshow to show the contents of an array, but this  
means that when saving vector graphics files, matplotlib resamples the  
image/array onto a finer grid. What I would like, is for code such as  
this:

import matplotlib
matplotlib.use('PS')
from matplotlib.pyplot import *

import numpy as np

image = np.random.random((10,10))

fig = figure(figsize=(4,4))
ax = fig.add_subplot(111)
ax.imshow(image)
fig.savefig('example1.ps')

fig = figure(figsize=(8,8))
ax = fig.add_subplot(111)
ax.imshow(image)
fig.savefig('example2.ps')

to produce files that are the roughly the same size, rather than  
different by a factor of 4. In addition, both files should be very  
small since they should only contain a 10x10 bitmap in addition to the  
axes+labels. Postscript and SVG (as languages) both allow a bitmap of  
an arbitrary resolution to be scaled, translated, and rotated without  
resampling.

I have come across the figimage method which is meant to place an  
array in a plot without resampling, but I cannot figure out how to use  
it like imshow, i.e. to show the image inside the axes as before. I've  
also tried the pcolor functions, but it seems like they define each  
pixel as an individual polygon, which is inefficient.

I was wondering if anyone had a solution to this, or if there are  
plans to make matplotlib behave like this in future?

Thanks,

Thomas

------------------------------------------------------------------------------
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to