当我们满心欢喜的拿到一个数据集准备处理时,却发现特征都是中文的,顿时心中就打起了鼓来,不敢确定在处理数据,或者数据可视化时会出什么幺蛾子。但是没办法只能硬着头皮上啊。
那么接下来李小宽带你来解决这个令人问题:
看吧,明明很不容易从几百个特征中挑出几个来想看看皮尔逊相关度矩阵,结果成了这样,全是方块。
(加# -*- coding: utf-8 -*-也不管用sa)
步骤一:打开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()
从此以后大家就可以安心处理数据,可视化啦。