|
From: Jesper L. <jes...@gm...> - 2014-03-24 09:45:59
|
Hi matplotlib users,
I am using matplotlib to produce plots (tiles) in a Web Map Service.
Unfortunately I cannot get Matplotlib to plot on the entire image. There
are one transparent (pixel) line at the bottom and one transparent line at
the right. This is of course a problem when the tiles are shown in a map.
Please see example below. Can anyone see what I am doing wrong?
Best regards,
Jesper
import numpy as np
import matplotlib as mpl
from matplotlib.figure import Figure
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
w = 256
h = 256
dpi = 128
figsize = w/dpi, h/dpi
fig = Figure(figsize=figsize, dpi=dpi, frameon=False)
canvas = FigureCanvas(fig)
ax = fig.add_axes([0, 0, 1, 1])
x = np.arange(0, 10, 0.1)
y = np.arange(10, 20, 0.2)
X, Y = np.meshgrid(x, y)
D = np.ones((X.shape[0]-1, X.shape[1]-1))
V = np.linspace(0.0, 1.0, 10)
ax.pcolor(X, Y, D, antialiased=False)
ax.axis( [x[0], x[-1], y[0], y[-1]] )
ax.axis('off')
filename = 'testfile.png'
fig.savefig(filename, dpi=128)
# Test image
from PIL import Image
im = Image.open(filename)
print im.getcolors()
|