Znaki spoza ASCII w Matplotlib
Mam problem z wyświetlaniem nie-ASCII znaków w Matplotlib, znaki te są renderowane jako małe pudełka zamiast odpowiedniej czcionki, wygląda to tak (wypełniłem te pudełka czerwoną farbą, aby je podświetlić):
Jak to naprawić?
Powiązane pytanie to znaki akcentowane w Matplotlib.
2 answers
Ten problem może mieć kilka różnych przyczyn:
Domyślna czcionka nie zawiera tych glifów
Możesz zmienić domyślną czcionkę za pomocą następujących opcji (zanim wykreślenie zostanie wykonane!)
matplotlib.rc('font', family='Arial')
W niektórych wersjach matplotlib musisz ustawić rodzinę:
matplotlib.rc('font', **{'sans-serif' : 'Arial',
'family' : 'sans-serif'})
(zauważ, że ponieważ sans-serif
zawiera myślnik wewnątrz składni **{}
, jest to w rzeczywistości konieczne.)
Pierwsze polecenie zmienia rodzinę czcionek sans-serif
na zawiera tylko jedną czcionkę (w moim przypadku była to Arial ), druga Ustawia domyślną rodzinę czcionek na sans-serif
.
Inne opcje są zawarte w dokumentacji .
Nieprawidłowo utworzyłeś / przekazałeś obiekty string do Matplotlib
Nawet jeśli czcionka zawiera odpowiednie glify, jeśli zapomniałeś użyć u
do utworzenia stałych Unicode , Matplotlib będzie miał takie zachowanie:
plt.xlabel("Średnia odległość między stacjami wsparcia a modelowaną [km]")
Więc musisz dodać u
:
plt.xlabel(u"Średnia odległość między stacjami wsparcia a modelowaną [km]")
Inną przyczyną jest to, że zapomniałeś umieścić UTF-8 magiczny komentarz na górze pliku (czytałem, że to może być źródłem problemu):
# -*- coding: utf-8 -*-
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-11 14:14:27
jb.
'Odpowiedź jest wystarczająco dobra. Jeśli chcesz uniknąć dodawania u
, Użyj tego
from __future__ import unicode_literals
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-15 08:26:44