Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
532 views
in Technique[技术] by (71.8m points)

python - How to plot a figure with Chinese Characters in label

When I draw a figure with Chinese Character label in Python 3, it doesn't work correctly:

Screenshot]

My code:

fig = pd.DataFrame({
    '债券收益率':bond,
    '债券型基金收益率':bondFunds,
    '被动指数型基金收益率':indexFunds,
    '总收益率':ret})
fig.plot()
plt.legend(loc=0)
plt.title('债券收益率',
          fontproperties='SimHei',
          fontsize='xx-large')
plt.grid(True)
plt.axis('tight')
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You need to explicitly pass the font properties to legend function using the prop kwag:

from matplotlib import font_manager

fontP = font_manager.FontProperties()
fontP.set_family('SimHei')
fontP.set_size(14)

fig = pd.DataFrame({
    '债券收益率':bond,
    '债券型基金收益率':bondFunds,
    '被动指数型基金收益率':indexFunds,
    '总收益率':ret})
fig.plot()

# Note the next lines
plt.legend(loc=0, prop=fontP)
plt.title('债券收益率', fontproperties=fontP)

plt.grid(True)
plt.axis('tight')

Source


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...