I read data from binary files into numpy arrays with np.fromfile. These data represent Z values on a grid for which spacing and shape are known so there is no problem reshaping the 1D array into the the shape of the grid and plotting with plt.imshow. So if I have N grids I can plot N subplots showing all data in one figure but what I’d really like to do is plot them as one image.
I can’t just stack the arrays because the data in each array is spaced differently and because they have different shapes.
My idea was to “supersample” all grids to the spacing of the finest grid, stack and plot but I am not sure that is such a good idea as these grid files can become quite large.
By the way: Let’s say I wanted to do that, how do I go from:
0, 1, 2
3, 4, 5
to:
0, 0, 1, 1, 2, 2
0, 0, 1, 1, 2, 2
3, 3, 4, 4, 5, 5
3, 3, 4, 4, 5, 5
I’m open to any suggestions.
Thanks,
Shahar
The answer if you just plot is: don’t.
plt.imshowhas a keyword argumentextentwhich you can use to zoom the imagine when plotting. Other then that I would suggest scipy.ndimage.zoom, with order=0, it is equivalent to repeating values, but you can zoom to any size easily or use a different order to get some smooth interpolation.np.tilecould be an option for very simple zooming too.Here is an example:
of course to get the same color range for both, you should add
vim=...andvmaxkeywords.