Używam matplotlib wersji 2.0.0 na Pythonie 3 w środowisku wirtualnym miniconda. Pracuję nad uniksowym klastrem obliczeń naukowych, w którym nie mam uprawnień roota. Generalnie wykonuję kod Pythona przez notatnik w ipythonie. Jeśli zrobię podstawowe komendy, takie jak:Matplotlib nie może znaleźć podstawowych czcionek
import matplotlib.pyplot as plt
plt.scatter([1,5], [1,5])
otrzymuję komunikat o błędzie:
path_to_miniconda/miniconda3/envs/conda34/lib/python3.4/site-
packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family
['sans-serif'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))
chciałbym móc używać czcionki Times New Roman, ale nawet po usunięciu pliku pamięci podręcznej czcionki (fontList.py3k.cache), które mogę znaleźć tutaj:
import matplotlib as mpl
fm = mpl.font_manager
fm.get_cachedir()
polecenia:
mpl.rcParams['font.family'] = ['serif']
mpl.rcParams['font.serif'] = ['Times New Roman']
nie działają, pojawia się ten sam błąd, co powyżej. Prawdziwy katalog czcionek typu:
path_to_miniconda/miniconda3/envs/conda34/lib/python3.4/site-packages/matplotlib/MPL-data/fonts/TTF/
ma tylko 40 czcionek w nim znaku typ: DejaVuSerif, DejaVuSans, STIX, cmb, cmt, cmy
Czy wiesz, co może się stać i jak mogę dodać dodatkowe czcionki? Dzięki!
Miałem ten sam problem. Dziękuję za twoją wskazówkę fm.get_cachedir(), wymazywałem niewłaściwą pamięć podręczną i teraz działa! Dziękujemy :) –