Is there a way to use PIL with matplotlib to place logos that are in EPS or SVG (or any scalable vector format) in order to place the logo on the graph and output the final file as EPS. Now I get a terribly rendered graphic because there is an .png
file trying to be converted to EPS format, where the goal is to save the image as an .eps
or .svg
.
I think this may be a restriction due to the backend, I'm open to changing which one I use.
This is what does not work:
ax1.set_axis_bgcolor('#fafafa')
img = image.imread('./static/images/logo.png')
image_axis = fig.add_axes(ax1.get_position())
image_axis.patch.set_visible(False)
image_axis.yaxis.set_visible(False)
image_axis.xaxis.set_visible(False)
image_axis.set_xlim(0,19.995)
image_axis.set_ylim(0,11.25)
image_axis.imshow(img, extent=(11.79705,18.99525,.238125,1.313625), zorder=-1, alpha=0.15) #need to keep a 5.023 x by y ratio (.4 x .079)
fig.savefig('static/images/graphs/'+filename+'.eps', format='eps', bbox_inches='tight')
Any updates?
imshow
is non-png, matplotlib will fall back on PIL which should be able to cope with eps (docs). I haven't got any eps files to hand to test, but could try tomorrow, potentially. – Antipasto