python3 matplotlib画图乱码问题

 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
    

在需要的标签里面,添加字体设置即可!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值