Flawed PDF save when using linewidth=0 in drawparallels() and drawmeridians()
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- matplotlib, python
- Ambito
- data-visualization
Direzione di ricerca
Inizia eseguendo l’esempio minimo e ispezionando gli entry point drawparallels() e drawmeridians() coinvolti nell’output PDF. Confronta il PDF generato nei visualizzatori interessati e verifica che l’uso di linewidth=0 non produca più un rendering errato, mentre le linee della griglia rimangono nascoste.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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) 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)
- Lingua principale
- Python
- Stelle
- 817
- Fork
- 395
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di matplotlib/basemap
-
small bug in drawmapscale Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
matplotlib/basemap#368 ·
-
Python 3.14 wheels Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
matplotlib/basemap#652 · 2 commenti · 5 reazioni ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
matplotlib/basemap#649 · 2 reazioni ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
matplotlib/basemap#646 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
matplotlib/basemap#645 · 2 commenti ·
Tutte le issue di matplotlib/basemap
Issue simili
-
documentation help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
simonw/sqlite-utils#872 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100