Сделайте так, чтобы ypbel Matplotlib отображал текст CJK вертикально - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь использовать matplotlib для создания графика с метками в CJK (в частности, на японском).Поскольку CJK может быть написан вертикально, я хочу, чтобы ylabel был написан таким образом.Я нашел способ сделать это ниже, но он требует заполнения каждого символа \n, чтобы создать желаемый эффект.Тем не менее, это хаккей.

Есть ли лучший способ, например, поворачивать каждый символ на 90 градусов?

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
Make a plot with Japanese labels.
"""

import matplotlib.pyplot as plt
from matplotlib import font_manager as fm

# Set fonts so that labels display correctly.
pathToInstall = '/path/to/fonts'
fontFiles = fm.findSystemFonts(pathToInstall)
fontList = fm.createFontList(fontFiles)
fm.fontManager.ttflist.extend(fontList)
fp = fm.FontProperties()
fp.set_family('Noto Sans Mono CJK JP')

fig = plt.figure()
fig.suptitle('こんにちは、世界さん!', FontProperties=fp) # Fine

plt.xlabel('アイウエオ', FontProperties=fp) # Fine
plt.ylabel(
    'あ\nい\nう\nえ\nお', # How can I avoid padding each character with \n?
    FontProperties = fp,
    rotation = 'horizontal',
    verticalalignment = 'center',
    horizontalalignment = 'right'
)

plt.show()

График, показывающий вывод вышеуказанного кода.

...