You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I noticed that when saving a basemap plot to a PDF file, the file is flawed when the code has drawparallels(..., linewidth=0) or drawmerdians(..., linewidth=0) in it.
A minimal working example:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
figure=plt.figure(figsize=(14,7),dpi=100)
for ii in range(4):
axii=figure.add_subplot(2,2,ii+1)
m = Basemap(projection='cyl',
llcrnrlat=40,urcrnrlat=47,\
llcrnrlon=-72,urcrnrlon=-67,resolution='l',
ax=axii, fix_aspect=False)
m.drawcoastlines()
lat_ticks=np.arange(41, 47)
lon_ticks=np.arange(-72, -67)
m.drawparallels(lat_ticks,labels=[1,0,0,0],linewidth=0)
m.drawmeridians(lon_ticks,labels=[0,0,0,1],linewidth=0)
figure.savefig('test.pdf')
The PDF won't display correctly in some PDF viewers, for instance Xreader (v.2.4.4) or Adobe reader. But works fine in others, like Okular or Foxit reader. When compiling a LaTeX document using pdflatex, the page containing that figure won't display properly, again it is PDF viewer dependent.
Here is a screenshot of the PDF file opened in Xreader:
Here is the same file opened in Okular:
The reason for setting linewidth=0 is to remove those grid lines, one relevant questions on Stackoverflow.
One workaround I found is to use zorder=-2 to hide those grid lines while avoiding creating corrupted PDF files.
Note that I've tried a few different matplotlib backends, including Qt5Agg, TkAgg, Agg, and the results are all the same.
Some specs and package versions:
OS: Manjaro Linux
Python = 2.7 or 3.7, in an anaconda env
basemap = 1.2.0
matplotlib = 3.1.3 (for py3) and 1.2.0 (for py2)
The text was updated successfully, but these errors were encountered:
Hi all,
I noticed that when saving a basemap plot to a PDF file, the file is flawed when the code has
drawparallels(..., linewidth=0)
ordrawmerdians(..., linewidth=0)
in it.A minimal working example:
The PDF won't display correctly in some PDF viewers, for instance Xreader (v.2.4.4) or Adobe reader. But works fine in others, like Okular or Foxit reader. When compiling a LaTeX document using pdflatex, the page containing that figure won't display properly, again it is PDF viewer dependent.
Here is a screenshot of the PDF file opened in Xreader:
Here is the same file opened in Okular:
The reason for setting
linewidth=0
is to remove those grid lines, one relevant questions on Stackoverflow.One workaround I found is to use
zorder=-2
to hide those grid lines while avoiding creating corrupted PDF files.Note that I've tried a few different matplotlib backends, including Qt5Agg, TkAgg, Agg, and the results are all the same.
Some specs and package versions:
OS: Manjaro Linux
Python = 2.7 or 3.7, in an anaconda env
basemap = 1.2.0
matplotlib = 3.1.3 (for py3) and 1.2.0 (for py2)
The text was updated successfully, but these errors were encountered: