在熊猫情节图例中显示非ASCII(日语)字符


问题内容

如果我这样做:

import pandas as pd
pd.DataFrame( data=nr.random( (2,2) ), columns=[u'é',u'日本'] ).plot()

结果:

在此处输入图片说明

因此é出现,但没有出现日本。稍作搜索后,我发现此页面似乎为提供了解决方案matplotlib。我在这里下载了字体文件并可以使用它matplotlib

import matplotlib.font_manager as fm
prop = fm.FontProperties(fname='/Users/user/Downloads/IPAfont00303/ipag.ttf')
plt.plot( np.arange(10), np.arange(10), label=u'日本' )
plt.legend( prop=prop )

结果:

在此处输入图片说明

然后,我尝试将相同的解决方案应用于pandas

import matplotlib.font_manager as fm
prop = fm.FontProperties(fname='/Users/user/Downloads/IPAfont00303/ipag.ttf')
df0.plot( prop=prop )

结果:

TypeError: There is no line property "prop"

我了解错误消息,但是不知道如何使用熊猫prop=prop。欢迎任何帮助。


问题答案:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager

df = pd.DataFrame( data=np.random.random( (2,2) ), columns=[u'é',u'日本'] )
ax = df.plot()
legend = ax.legend()
font = font_manager.FontProperties(fname='/Users/user/Downloads/IPAfont00303/ipag.ttf')

for text in legend.texts:
    text.set_font_properties(font)

plt.show()