Ich erstelle ein Konturdiagramm mit der Funktion matplotlib.pyplot.contourf(). Die Argumente in dem Aufruf der Funktion sind:Aliasing beim Speichern von mit matplotlib gefülltem Konturplot auf .pdf oder .eps
contourf(xvec,xvec,w,levels,cmap=matplotlib.cm.jet)
wo
xvec = numpy.linspace(-3.,3.,50)
levels = numpy.linspace(-0.01,0.25,100)
und w sind meine Daten.
Die resultierende Grafik sieht auf dem Bildschirm ziemlich gut aus, aber wenn ich mit einem Aufruf von matplotlib.pyplot.savefig() nach pdf speichere, hat das resultierende PDF viel Aliasing (ich denke, das ist was es ist) . Der Aufruf von savefig ist einfach savefig('filename.pdf')
. Ich habe versucht, das Argument dpi zu verwenden, aber ohne Glück. Ein Anruf an matplotlib.get_backend()
spuckt 'TkAgg' aus.
werde ich eine Figur gespeichert als PDF anhängen, im Vergleich zu einer Figur als png gespeichert (ähnlich, wie es auf dem Bildschirm aussieht), das Problem zu demonstrieren:
png wihtout Aliasing: https://dl.dropbox.com/u/6042643/wigner_g0.17.png
pdf mit Aliasing: https://dl.dropbox.com/u/6042643/wigner_g0.17.pdf
Bitte lassen Sie mich wissen, wenn es andere Details gibt, die ich geben könnte, um Ihnen zu helfen, eine Antwort zu geben. Ich sollte erwähnen, dass das Speichern von .eps zu ähnlich schlechten Ergebnissen führt wie das Speichern im PDF-Format. Aber das PDF zeigt das Problem noch deutlicher. Mein Ziel ist es, eine Produktionsqualität zu erreichen, die ich an ein Latex-Dokument anhängen kann, um es als wissenschaftliche Arbeit zu veröffentlichen. Ich wäre glücklich mit einer Art von Arbeit um, wo ich in einem Format speichern, dann konvertieren, wenn ich einen Weg finden kann, der befriedigende Ergebnisse gibt.
Best,
Arne
Diejenigen aussehen [Moiré-Muster] (https://en.wikipedia.org/wiki/Moir%C3%A9_pattern) zu mir. Mit der PDF ändert sich das Muster basierend auf der Zoomstufe. – tacaswell
@arne: Die verknüpften Dateien sind weg - jede Chance, sie zu ersetzen? –