【数据处理】Python画图显示方块或乱码的问题一次性永久解决

       当我们满心欢喜的拿到一个数据集准备处理时,却发现特征都是中文的,顿时心中就打起了鼓来,不敢确定在处理数据,或者数据可视化时会出什么幺蛾子。但是没办法只能硬着头皮上啊。

那么接下来李小宽带你来解决这个令人问题:

问题:

看吧,明明很不容易从几百个特征中挑出几个来想看看皮尔逊相关度矩阵,结果成了这样,全是方块。

(加# -*- coding: utf-8 -*-也不管用sa)

【数据处理】Python画图显示方块或乱码的问题一次性永久解决_第1张图片

解决:

步骤一:打开ipython什么的(只要能执行Python代码就好啦)

import matplotlib
matplotlib.matplotlib_fname()

会显示matplotlibrc文件的地址:  'c:\\users\\dell\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'(这是我哒)


步骤二:修改matplotlibrc文件(不用担心哈,就用记事本打开就好啦)
将文件中的

#font.family: sans-serif

在注释的下一行,添加一行:

#font.family: Microsoft YaHei

就可显示为中文

下面我再来试验下:

# 特征间相关性分析
# 挑选一些主要的特征,生成特征之间的关联图,查看特征与特征之间的相关性:
#指定默认字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
matplotlib.rcParams['font.family']='sans-serif'
#解决负号'-'显示为方块的问题
matplotlib.rcParams['axes.unicode_minus'] = False

Correlation = pd.DataFrame(ip[
    [u'身高', u'体重',u'也不知道是啥',u'是否正常.2',u'是否正常.3',
    u'升高.1', u'降低', u'是否正常.4', u'升高.2', u'降低.1',
    u'是否正常.5',  u'是否正常.6', u'是否正常.7',u'尿pro',u'是否正常.8', 
    u'是否正常.9', u'是否正常.10',u'西医诊断/支气管肺炎']])

colormap = plt.cm.viridis
plt.figure(figsize=(14,12))
plt.title('Pearson Correlation of Features', y=1.05, size=15)
# sns.heatmap(Correlation.astype(float).corr(),linewidths=0.1,vmax=1.0, square=True, cmap=colormap, linecolor='white', annot=True)
# plt.show()
sns.heatmap(Correlation.astype(float).corr(),linewidths=0.1,vmax=1.0, square=True, cmap="YlGnBu", linecolor='white', annot=True)
plt.show()

【数据处理】Python画图显示方块或乱码的问题一次性永久解决_第2张图片

 

 

从此以后大家就可以安心处理数据,可视化啦。

你可能感兴趣的:(Python,Matplotlib)