Matplotlib:使用fontproperties名称更改xticks字体仅适用于第一个xticks



我正在尝试绘制一个条形图,其中xtick标签是日语的。

在第一次得到RuntimeWarning: Glyph <some number> missing from current font.之后,我找到了xticks的参数fontproperties。如下面的最小示例所示使用它,xtick标签的第一个以我指定的字体正确显示,但以下所有标签仍然是缺失的字符矩形(见图(。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
fprop = fm.FontProperties(fname='NotoSansCJKjp-Regular.otf')
d = {'a': {'ほげイ': 5250.0,
'ほげロ': 1497.0,
'ほげハ': 810.0},
'b': {'ほげイ': 1707.0,
'ほげロ': 507.0,
'ほげハ': 305.0}}
df_foo = pd.DataFrame.from_dict(d)
df_foo.plot(kind='bar')
plt.xticks(fontproperties=fprop, fontsize=15)
plt.show()

这是输出的图像。

知道为什么会发生这种情况,或者如何指定所有xtick标签的字体吗?

提前感谢您的指点。

这是一个bug,正如本期Github中所述。更新到v3.3.3或更高版本修复它。

最新更新