解决python中matplotlib与seaborn画图时中文乱码的根本问题:

首先我们要明确seaborn是基于matplotlib的,我们要先学会解决matplotlib中文乱码的问题:

这个问题,在其他的一些博文中都有,我这里就简单的介绍一下:

一.matplotlib中文乱码根本解决办法:

1.首先在你编译的环境下进行输入一下代码:

import matplotlib
print(matplotlib.matplotlib_fname())

  这样会输出,你所编译的环境下的matplotlib包中关于编码的相关文件,下面是我的输出:

/Users/yuyangchen/opt/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc

2.运用终端命令打开这个路径下的文件,因为我自己使用的是mac,所以我是这样在终端输入的,     对于Windows的同学,可能会不一样,但是无论用哪种方法,打开这个文件就好了:

open /Users/yuyangchen/opt/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc

 打开后这个文件里面长这个样子:

 3.然后我们找到相应的位置进行修改,我这里就直接放出修改后的截图了:

     这里主要进行了两处的修改:1.把font.family前面的'#'给删除,也就是解除了注释                                                                            2.把font.sans-serif前面的'#'也给删除了,并且在其后面加上了                                                             Arial Unicode MS (一种允许中文的字体,应该是不需要下载)

 之后你就会发现,再去用matplotlib进行画图的时候,就不会出现中文乱码了(如果操作都正确的话,应该会是这样的,嘻嘻)。但是你会发现这个时候用seaborn去画图,还是可能会出现乱码的情况,问题来了,其实这是因为刚才说了seaborn是基于matplotlib去实现的,然后在运行的时候,seaborn的一些设置就会覆盖掉matplotlib中的一些设置,所以导致matplotlib不乱码而seaborn乱码。下面咱们就再去seaborn中去改一下它的设置吧!

二.seaborn中文乱码的根本解决办法:

这里的方法,我其实一直想找到,搜了很多博文,都是直接在写代码的时候去解决,这样我们写另外的代码的时候,还要把那段代码写上去,治标不治本。然后,我就想去直接像解决matplotlib乱码的问题一样,直接去改它的原文件,索性我就去看seaborn的源码,看了半天终于让我找到这个设置藏在哪里,我们来看看吧:

1.首先,我们要知道你的matplotlib包和seaborn包肯定是下载在同一文件下的,所以我就在上面的路径中去找就好了,下面是我的路径,我们可以看到前半部分跟matplotlib是一样的,说明在一个文件下,你们也对应的去找就好了:

/Users/yuyangchen/opt/anaconda3/lib/python3.8/site-packages/seaborn/rcmod.py

2.打开那个rcmod.py文件并且找到  font.family ,和  font.sans-serif 定义的地方,我们会发现确实在font.sans-serif中少了我们之前在matplotlib的配置文件中添加的 Arial Unicode MS,在这里我们把它添加进去就好了,结果如图:

最后,我们把编译器关掉再重启或者重启电脑,我是重启电脑的,然后就好了,seaborn中文乱码的问题就解决了 ,这篇文章到此就结束了,谢谢观看。

注:这是我发的第一篇博客,里面的内容特别是seaborn中文乱码解决的问题,是我自己发现的,所以纪念一下。然后呢,第一次写,会比较啰嗦,主要是怕有些人看不太懂。因为有的时候,我看别人的文章我就看不懂,哈哈哈哈。好了,谢谢大家的支持,这感觉还蛮好的

1. 目录 1. 目录 2 2. 绘图函数Plotting functions 4 2.1. 可视化的统计关系Visualizing statistical relationships 4 2.1.1. 用散点图联系变量Relating variables with scatter plots 4 2.1.2. 强调线条图的连续性Emphasizing continuity with line plots 10 2.1.3. 显示与切面的多个关系Showing multiple relationships with facets 21 2.2. 分类数据绘图Plotting with categorical data 24 2.2.1. 分类散点图Categorical scatterplots 26 2.2.2. 分类观测值分布Distributions of observations within categories 31 2.2.3. 分类统计估计Statistical estimation within categories 37 2.2.4. 对“wide-form”数据作图Plotting “wide-form” data 41 2.2.5. 显示与facet的多个关系Showing multiple relationships with facets 43 2.3. 可视化数据集的分布Visualizing the distribution of a dataset 44 2.3.1. 绘制单变量分布Plotting univariate distributions 45 2.3.2. 绘制二元分布Plotting bivariate distributions 51 2.3.3. 在数据集可视化成对关系Visualizing pairwise relationships in a dataset 55 2.4. 可视化线性关系Visualizing linear relationships 57 2.4.1. 函数绘制线性模型Functions to draw linear regression models 58 2.4.2. 拟合不同种类的模型Fitting different kinds of models 61 2.4.3. 在其他变量上的情况Conditioning on other variables 68 2.4.4. 控制图表的大小和形状Controlling the size and shape of the plot 71 2.4.5. 在其他上下文绘制回归图Plotting a regression in other contexts 73 3. 多图网格Multi-plot grids 76 3.1. 构建结构化的多图网格Building structured multi-plot grids 76 3.2. 有条件的小倍数Conditional small multiples 77 3.3. 使用定制函数Using custom functions 86 3.4. 绘制成对的数据关系Plotting pairwise data relationships 90 4. 绘图美学Plot aesthetics 99 4.1. 控制图表美学Controlling figure aesthetics 99 4.1.1. Seaborn图表风格Seaborn figure styles 101 4.1.2. 删除轴上的小凸起Removing axes spines 104 4.1.3. 临设置图表样式Temporarily setting figure style 105 4.1.4. 覆盖Seaborn样式的元素Overriding elements of the seaborn styles 106 4.1.5. 缩放图表元素Scaling plot elements 108 4.2. 选择调色板Choosing color palettes 111 4.2.1. 创建颜色调色板Building color palettes 111 4.2.2. 定性调色板Qualitative color palettes 112 4.2.3. 连续调色板Sequential color palettes 116 4.2.4. 不同颜色的调色板Diverging color palettes 122 4.2.5. 设置默认调色板Setting the default color palette 124 5. 教程的数据集 125
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值