Pobrałem kilka czcionek .ttf
i umieściłem je w moim katalogu domowym w ~/.fonts
. Kiedy biegnę
matplotlib.font_manager.get_fontconfig_fonts()
Te czcionki pojawiają się na liście (według ścieżki). Potrafię też biegać
matplotlib.font_manager.FontProperties(<path>).get_name()
I odzyskaj nazwy czcionek, na przykład „Impact”.
Ale kiedy próbuję tego:
import matplotlib.pyplot as plt
plt.text(0,0,'Hello',fontname='Impact')
Mówi, że rodzina czcionek nie została znaleziona. Czcionki w publicznym obszarze /usr/share/
działają zgodnie z oczekiwaniami.
Jak mogę sprawić, by matplotlib wiedział, gdzie szukać podczas wykonywania połączenia?
1 odpowiedź
Najlepsze, co wymyśliłem, to bezpośrednie użycie fontproperties
.
To daje listę ścieżek, w tym czcionki katalogu domowego:
matplotlib.font_manager.get_fontconfig_fonts()
Dla dowolnej ścieżki pliku podaj fontproperties:
prop = matplotlib.font_manager.FontProperties(<path>)
Rozmiar można zmienić w tym obiekcie, ale pogrubienie i kursywa są wbudowane.
Możesz go używać tak, jak jest:
plt.text(0,0,'Hello',fontproperties=prop)
To jest w porządku, ale nie idealne, ponieważ będziesz mieć tylko listę ścieżek i nie możesz po prostu określić, czy chcesz pogrubioną kursywą Arial, czy coś. Stworzenie słownika nie wymagałoby jednak zbyt wiele pracy, ponieważ ta informacja jest we właściwościach.
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.