python - 让matplotlib的ylabel垂直显示CJK文本
问题描述
我正在尝试使用matplotlib
CJK(尤其是日语)制作带有标签的情节。由于 CJK 可以垂直书写,我希望ylabel
以这种方式书写。我在下面找到了一种方法,但它需要填充每个字符\n
以创建所需的效果。但是,这是hackey。
有没有更好的方法,例如,将每个字符旋转 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()
解决方案
推荐阅读
- python - enum() 在 python 中做了什么?
- css - 我应该将类属性添加到 Angular 组件选择器标签吗
- c# - 如何在 C# 中获取 json 对象的属性?
- python - randomchoicest() 给出属性错误
- jenkins - BlueOcean 不要求我提供一些 jenkins 多分支参数
- c# - 如何将显式运算符转换为方法组?
- react-native - 如何在 react-native 中播放 base64 视频
- django - 在 Django 中使用 html 表单将数据存储到数据库
- unix - 使用 sed 替换所有出现的以 'xy' 开头且长度为 5 或更长的字符串
- mongoose-schema - Mongoose Schema 静态与方法