Portál AbcLinuxu, 3. listopadu 2025 18:58
Řešení dotazu:
matplotlib.rc('font', family='Verdana'). A vše je OK. Na serveru s openSUSE to nic neudělá, resp. ščřž jsou ok, místo ě, ť, ď se zobrazí jen []. Dokonce jsem do openSUSE nahrál i základní písma z Macu, abych měl jistotu, že jsou stejná. Nic. Trošku pomáhá toto:
import matplotlib.font_manager as fm
fp = fm.FontProperties(fname="/usr/share/fonts/truetype/Verdana.ttf")
# matplotlib.rcParams['font.family'] = fp.get_name()
matplotlib.rc('font', family=fp.get_name())
a pak postupně u každého grafu psát plt.title(_title, fontproperties=fp). Jenže problém je, že toto není podporováno u legendy ani labelů u sloupcových grafů.
Až přenastavím nastavení projektu na desktopu s openSUSE, tak budu vědět trošku víc, jestli to je jen chyba na tom serveru, nebo to souvisí s openSUSE jako takovým... Nejde mi do hlavy, proč to na Macu jde a na SUSE ne.
LANG="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" LC_CTYPE="cs_CZ.UTF-8" LC_MESSAGES="cs_CZ.UTF-8" LC_MONETARY="cs_CZ.UTF-8" LC_NUMERIC="cs_CZ.UTF-8" LC_TIME="cs_CZ.UTF-8" LC_ALL=Server s openSUSE:
LANG=cs_CZ.UTF-8 LC_CTYPE="cs_CZ.UTF-8" LC_NUMERIC="cs_CZ.UTF-8" LC_TIME="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" LC_MONETARY="cs_CZ.UTF-8" LC_MESSAGES="cs_CZ.UTF-8" LC_PAPER="cs_CZ.UTF-8" LC_NAME="cs_CZ.UTF-8" LC_ADDRESS="cs_CZ.UTF-8" LC_TELEPHONE="cs_CZ.UTF-8" LC_MEASUREMENT="cs_CZ.UTF-8" LC_IDENTIFICATION="cs_CZ.UTF-8" LC_ALL=
fc-match verdana aké písmo to vypíše.
DejaVuSans.ttf: "DejaVu Sans" "Book", na SUSE serveru Verdana.ttf: "Verdana" "Normal", ale to je tím, že jsem tam fláknul Verdanu z Macu. Teď odstraňuji písma ze serveru a kopíruju je ze SUSE desktopu. Uvidíme, co to udělá. Možná je to nějakým vadným configem písma? Dochází k inicializaci všech potřebných configů, když se nespouští desktopové aplikace, protože xorg není přítomen?
Teď jsem tam místo Verdany nastavil DejaVu Sans, ale stejně nic. Nejde ě, ť, ď... Skutečně divné. Jak říkám, na desktopovém openSUSE to funguje korektně jako v OS X.
fm.cachedir je var/lib/wwwrun/.cache/matplotlib. V tomtéž adresáři .cache je i podadresář fontconfig... Oboje smazáno a diakritika s nově načtenými fonty jede. Tolik hodin a taková blbost.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.