Я пытаюсь использовать 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()
График, показывающий вывод вышеуказанного кода.