matplotlib.pyplot在显示时出现无法正确显示,显示为框框。
主要是该库找不到合适的字体,默认的使用的字体里没有中文,要在有中文的地方加上中文相关的字体,不然会因为没有字体显示成框。
import matplotlib
myfont = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
#在有中文显示的地方,设置一下字体即可
plt.xlabel(“身高”,fontproperties=font_set)
plt.ylabel(“体重”,fontproperties=font_set)
plt.legend(prop=font_set,loc=“best”)
#plt.legend(loc=“upper left”)
plt.title(‘BMI值’, fontproperties=font_set)
title问题-曲线解决
#原来代码
datai[i].plot(kind='line', style='--x', alpha=0.5, title=i
use_index=True, color=c)
#拆出title,设置字体解决
datai[i].plot(kind='line', style='--x', alpha=0.5,
use_index=True, color=c)
plt.title(i, fontproperties=myfont)
axi.set_xticklabels(datai['姓名'].tolist(), fontproperties=myfont)
#完整代码
# -*- coding: utf-8 -*-
"""
Created on Mon Apr 22 21:11:25 2019
群众眼中最佳的运动员和最佳的CP
@author: zss0330816
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import matplotlib
myfont = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc', size=12)
plt.rcParams['font.sans-serif']=['SimSun'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
df = pd.read_excel(r"D:\数据分析\数据分析师(python)微专业前置课资料_运动员\classdata\奥运运动员数据.xlsx",
sheetname=0)
#df_length = len(df)
df_clo = df.columns.tolist()
'''
'''
fig = plt.figure(figsize=(12, 6.25))
plt.subplots_adjust(wspace=0.25, hspace=0.3)
n =0
for i in ['百度搜索结果数量', 'Bing搜索结果数量', '近7天整体搜索指数', '近30天整体搜索指数',
'当月平均','当月最高']:
c = plt.cm.brg(np.linspace(0, 0.7, 6))[n]#拆分数据,色带,调色盘
axi = fig.add_subplot(2, 3, n+1)
datai = df[['姓名', i]]
datai.sort_values(by=i, inplace=True, ascending=False)
datai.reset_index(inplace=True)
datai[i].plot(kind='line', style='--x', alpha=0.5,
use_index=True, color=c)
plt.title(i, fontproperties=myfont)
axi.set_xticklabels(datai['姓名'].tolist(), fontproperties=myfont)
# axi.title(fontproperties=myfont)
plt.grid(linestyle='--', alpha=0.6)
# print(datai)
n += 1
在需要的标签里面,添加字体设置即可!