Метки осей Matplotlib Unicode с использованием рендера Cairo - PullRequest
5 голосов
/ 23 марта 2011

Я пытаюсь сгенерировать график, используя Matplotlib с нелатинским символом («μ») в метке оси, например:

matplotlib.pyplot.xlabel(u'Sarcomere Length (μm)')

Я использую Cairo Renderer в Linux, и вместо "μ" я получаю "box":

Incorrect Axis Label

Работает с акцентированными латинскими символами (например, «é»). Есть идеи?

1 Ответ

7 голосов
/ 23 марта 2011

Это проблема шрифта.Какой бы шрифт вы ни выбрали в качестве значения по умолчанию для matplotlib, этот конкретный символ отсутствует.Существует несколько способов это исправить, но это будет зависеть от системы.(Это может быть так же просто, как и убедиться, что у вас установлен соответствующий пакет шрифтов.)

Вы можете установить шрифты, которые matplotlib будет использовать в вашем файле .matplotlibrc .Если он не находит точный шрифт, который вы пытаетесь использовать, вы можете указать полный путь к соответствующему файлу шрифта .ttf в файле .matplotlibrc.Однако обычно вам не нужно этого делать.

Однако, в конкретном случае, который вы указали выше, есть более простой способ.

Вообще говоря, вам лучше использовать Математический рендеринг * matplotlib для таких вещей, как греческие символы.Например, вместо matplotlib.pyplot.xlabel(r'Sarcomere Length ($\mu m$)').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...