Force pyplot.imshow() to produce image with higher resolution
Question: I have an NxN array that I am plotting in Python using
`matplotlib.pyplot.imshow()`. N will be very large and I want my final image
to have resolution to match. However, in the code that follows, the image
resolution doesn't seem to change with increasing N at all. I think that
`imshow()` (at least how I'm using it) has a fixed minimum pixel size that is
larger than that needed to show my NxN array with full resolution.

    
    
    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib import cm
    
    array = np.loadtxt("output.dat",unpack=True)
    plt.figsize=(30.0, 30.0)
    im = plt.imshow(array,cmap='hot')
    plt.colorbar(im)
    plt.savefig("mandelbrot.pdf")
    

As you can see in the code above, I've tried messing with `plt.figsize` to try
and increase resolution but to no avail. I've also tried various output
formats (.pdf, .ps, .eps, .png) but these all produced images with lower
resolution than I wanted. The .ps, .eps, and .pdf images all looked the exact
same.

First, does my problem exist with `imshow()` or is there some other aspect of
my code that needs to be changed to produce higher resolution images?

Second, how do I produce higher resolution images?


Answer: `plt.figsize()` will only change the size of the figure in inches while
keeping the default dpi. You can set the resolution of the figure by passing
the `dpi` keyword argument when you save the figure:

    
    
        fig.savefig('filename.extension', dpi=XXX)
    

So if you have a figure size of 4x6 and save it with `dpi=300` you'll end up
with an image with 1200x1800 resolution.

You can also set the default figure size and dpi with
[`matplotlibrc`](http://matplotlib.org/users/customizing.html).

