matplotlib中文乱码问题

乱码的原因是字体问题

所以指定matplotlib使用的字体就好了

 

# -*- coding:utf-8 -*-

import matplotlib.pyplot as plt
plt.style.use('ggplot')
from matplotlib.font_manager import *

import numpy as np
import pandas as pd

#定义自定义字体
myfont = FontProperties(fname='/temp/msyh.ttf')
#解决负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus']=False

df = pd.read_csv('/temp/iris.data',names=['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度', '类别'])

fig, ax = plt.subplots(figsize=(6,4))
ax.hist(df['花萼长度'], color='black');
ax.set_ylabel('AAA', fontsize=12)
ax.set_xlabel('BBB', fontsize=12)
plt.title(u'标题', fontproperties=myfont,fontsize=14, y=1.01)

plt.show()