Der folgende Code erzeugt das korrekte Diagramm mit plt.show()
, schlägt aber fehl, wenn es in einem PDF- oder PNG-Bild gespeichert wird.matplotlib show funktioniert, während savefig für Unicode fehlschlägt
Ich habe verschiedene Vorschläge (siehe kommentierte Zeilen) in ähnlichen Fragen ausprobiert, aber keiner von ihnen funktioniert in diesem Fall. Png-Datei zeigt die Unicode-Zeichen als Boxen, während PDF einfach ignoriert sie.
##-*- coding: utf-8 -*-
#from matplotlib import rc
#rc('font', **font)
#rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
#rc('font',**{'family':'serif','serif':['Palatino']})
#rc('text', usetex=True)
import matplotlib.pyplot as plt
plt.figure()
plt.plot(range(10))
plt.xlabel(u"\u2736")
plt.ylabel(u'\u03c4')
plt.savefig('unicode.pdf')
plt.savefig('unicode.png')
#plt.show()
Danke für den Vorschlag. "DejaVu Sans" existiert nicht auf Mac. Ich habe versucht, es zu installieren, ist aber irgendwie gescheitert. Aber das Ändern der Schriftart in Calibri funktionierte für das \ tau-Symbol. Es ist also definitiv ein Schriftproblem, wie Sie gesagt haben. Vielleicht können Sie andere Schriftart Optionen auf Ihre Antwort hinzufügen und die Möglichkeiten, Informationen über Schriften, das heißt 'Import matplotlib.font_manager als fm' ' fm.findSystemFonts (fontpaths = None, fontext = 'ttf') '' gesetzt zu bekommen ([ f.name für f in fm.fontManager.ttflist]) ' – Armut
Ahh, tut mir leid, ich habe nicht auf Mac gecheckt. Ich habe einige Ressourcen für Schriftarten gefunden, die Unicode unterstützen, also werde ich die Antwort aktualisieren – cnosam