Matplotlib font_manager.py Fehler bei der Suche nach Schriftarten
10756
Tim
Auf einem Ubuntu 12.04-Computer wird immer dann ein Fehler angezeigt, wenn ich etwas plottiere:
/usr/lib/pymodules/python2.7/matplotlib/font_manager.py:1228: UserWarning: findfont: Konnte nicht übereinstimmen: family = Bitstream Vera Sans: style = normal: variant = normal: weight = medium: stretch = normal: size = x groß. Rückgabe von /usr/share/matplotlib/mpl-data/fonts/ttf/cmb10.ttf
was ich online nicht finden kann. Der folgende Code reproduziert den Fehler
import pylab as plt plt.plot(np.random.random((128))) plt.title("This should be monospaced") plt.savefig("/tmp/testfig.pdf")
und auch der matplotlib-Selbsttest gibt diesen Fehler aus:
python -c "import matplotlib as m ; m.test(verbosity=1)"
font.family : monospace font.style : normal font.variant : normal font.weight : medium font.stretch : normal font.size : 10.0 font.serif : Palatino, Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Charter, serif font.sans-serif : Helvetica, Bitstream Vera Sans, sans-serif font.monospace : Monaco, Ubuntu Mono Regular, Bitstream Vera Sans Mono, Andale Mono, Nimbus Mono L, Fixed, Terminal, monospace
Einige Dinge, die das Problem für mich nicht lösen:
Löschen von Dateien in ~/.matplotlib/(dh matplotlibrc, fontList.cache, tex.cache/)
Ändern Sie die font.familyEigenschaft in~/.matplotlib/matplotlibrc
Installieren Sie matplotlib nach einem erneut apt-get purge
Die Versionen, die ich verwende, sind:
Matplotlib 1.1.1 ~ rc1 + git20120423-0ubuntu1
Python 2.7.3
IPython 0.12.1
Ubuntu 12.04
Unter Ubuntu 16.04 mit matplotlib 2.2.3 ist kein solcher Ordner wie ~ / .matplotlib / `vorhanden. Wo sind die Cache-Dateien, die ich löschen sollte?
MERose vor 6 Jahren
0
I'm not sure why this helps, so perhaps somebody can add some background as to why this helps. Hopefully this helps someone else.
+1, dasselbe Problem auf Ubuntu 12.10 (mit mpl in einer virtualenv). gelöst mit deiner Antwort Vielen Dank.
bmu vor 12 Jahren
0
Die Schrift konnte nicht gefunden werden. Bei der Installation von ttf-bitstream-vera haben Sie die Schriftart installiert, die nicht gefunden wurde.
Timtro vor 11 Jahren
1
@ TimTro, aber warum funktioniert das Ändern von "font.family" nicht? Oder versucht es beim Start immer, alle Schriftfamilien aufzulösen?
Tim vor 11 Jahren
0
@ Tim - Gute Frage. Die Antwort war mir vor sechs Wochen völlig klar, als ich antwortete, aber ich kann im Moment nicht verstehen, warum.
Timtro vor 11 Jahren
0
2
Serge Stroobandt
matplotlibverwendet immer einen eigenen Satz von Zeichensätzen, unabhängig von anderen im System installierten Zeichensätzen. Auf Ubuntu 12.04 LTS befinden sich diese Schriftarten in /usr/share/matplotlib/mpl-data/fonts/.
Wenn Sie eine Schriftart in Ihrem Code aufrufen, die in diesem Verzeichnis nicht verfügbar ist, matplotlibwird zunächst versucht, auf Bitstream Vera Sans zurückzugreifen. Diese Schriftart ist jedoch nicht in .../mpl-data/fonts/Ubuntu 12.04 LTS-Installationen verfügbar . Zum Schluss matplotlibfällt noch die cmb10.ttfSchriftart, die verfügbar ist.
Durch die Installation von Systemfont-Paketen wie oben vorgeschlagen wird diese Warnung nicht behoben.
Man kann jedoch rcParams['mathtext.fontset'] = 'cm'den Code hinzufügen, um die zahlreichen Rückschläge und Warnungen zu vermeiden.
Alternativ können Sie eine Schriftart angeben, die in vorhanden ist /usr/share/matplotlib/mpl-data/fonts/.
Gibt es eine Möglichkeit, Matplotlib Schriftarten hinzuzufügen? Ich habe versucht, meine ttf-Schriftarten mit "/ usr / share / matplotlib / mpl-data / fonts / ttf /" zu verlinken, jedoch ohne Erfolg.
PhilMacKay vor 10 Jahren
2
Laden Sie Fondu herunter und installieren Sie es, um Mac-Helvetica in TTF-Helvetica zu konvertieren. Mit homebrew, kann dies gemacht werden: brew install fondu.
Finden Sie Helvetica auf Ihrem System. Für mich war es so/System/Library/Fonts/Helvetica.dfont
Finden Sie heraus, wo matplotlib seine Daten speichert. Verwenden Sie python import matplotlib; matplotlib.matplotlib_fname(), um das Verzeichnis zu drucken.
Setzen Sie die .ttf in: your_matplotlib_dir/matplotlib/mpl-data/fonts/ttfdannsudo fondu -show /System/Library/Fonts/Helvetica.dfont
Bearbeiten Sie Ihre .matplotlibrc-Datei. Kopieren Sie die ursprüngliche .matplotlibrc-Datei in ein persönliches Verzeichnis, damit sie beim Aktualisieren von matplotlib nicht überschrieben wird.$ cp your_matplotlib_dir/matplotlib/mpl-data/matplotlibrc ~/.matplotlib/matplotlibrc
Suchen Sie die Zeile: #font.sans-serif : Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serifdann kommentieren Sie die Markierung und verschieben Sie Helvetica nach vorne.font.sans-serif : Helvetica, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
Bitte zitieren Sie die wesentlichen Teile der Antwort aus den Referenzlinks, da die Antwort ungültig werden kann, wenn sich die verlinkten Seiten ändern.
DavidPostill vor 8 Jahren
0
0
Aryeh Leib Taurog
Wahrscheinlich lädt es Ihre matplotlibrcKonfigurationsdatei nicht. Stellen Sie sicher, dass es an der richtigen Stelle ist. In der Dokumentation werden mehrere Orte aufgeführt, die durchsucht werden. Platzieren Sie es an einem der beschriebenen Orte:
das aktuelle Arbeitsverzeichnis des Python-Prozesses
beim ~/.config/matplotlib/matplotlibrc
Letzteres hat bei Debian 7 eigentlich nicht funktioniert, aber auch nicht ~/.matplotlib/matplotlibrc.