美文网首页spark人工智能/模式识别/机器学习精华专题大数据-简书
python可视化——详解matplotlib的配置文件以及配置

python可视化——详解matplotlib的配置文件以及配置

作者: 程序员1 | 来源:发表于2019-04-17 17:44 被阅读1次

    一、matplotlib配置

    我们使用matplotlib所画出来的图形中,会呈现出各种各样的样式,除了我们手动设置自定义的配置属性以外,matplotlib自带了一套配置方案以及各种默认的图形配置信息,幸运的是,几乎所有的配置信息都能够通过一组全局参数进行自定义,这些参数管理着图像的大小、subplot边距、配色方案、字体、网格等一系列信息。

    二、matplotlibrc 的配置方式

    matplotlibrc是matplotlib resource configurations的简称。matplotlib的图形配置方式有很多,主要是从以下三个方面进行配置的。

    (1)通过配置文件进行配置——查看+设置

    (2)通过rcParams['参数名']动态配置——查 看+设置

    (3)通过matplotlib.rc()函数配置

    2.1 通过配置文件

    matplotlibrc是matplotlib的配置文件,配置文件分为几个不同的级别,比如我们默认的是所有的图形都是使用默认的配置,因为我们使用的是全局的默认配置,但是如果我们希望,每一个项目都单独使用一套不同的配置,或者是不同的用户使用一套不同的配置,这就需要使用到局部配置文件。使用不同的配置参数的方式,是让你能够在不同的项目中使用不同的参数配置,不同的同事和项目之间分配配置模板。

    matplotlib通过matplotrc文件来进行配置,这个文件根据他们的应用范围可以有一下三个级别:

    (1)当前工作目录:代码运行的目录,可以为目录所包含的当前项目代码定制matplotlib配置项。配置文件的名称是matplotlibrc。在这个单独的项目中,都是用这一套配置文件,默认是没有的,我们需要自己创建,怎么创建呢?后面会讲 到。

    (2)用户级配置文件:即用户目录之下的.matplotlib/matplotlibrc文件。通常是在用户的$HOME中(也就是windows系统中的 Users目录)。比如我的用户目录为:C:UsersXinAir.matplotlibmatplotlibrc,有的可能没有,同样可以自己为用户创建配置文件。可以调用matplotlib.get_configdir()命令获取当前用户的配置文件目录。

    (3)安装级配置文件:简装matplotlib的时候在安装路径之下的配置文件,通常在python的site-packags目录下的matplotlib文件夹中的mpl-data文件夹之下,比如,我的电脑在:D:ProgramDataAnaconda3envsensorflowLibsite-packagesmatplotlibmpl-datamatplotlibrc。

    系统在画图的时候会按照(1)、(2)、(3)的顺序进行配置文件的寻找。如果我们对上面的路径不是特别清楚,我们可以通过编程的方式进行查看,如下代码:

    配置文件的格式:

    既然涉及到自己创建配置文件,那么配置文件的格式是什么样子呢,如何修改呢,我们可以打开安装目录之下的matplotlibrc加以查看,发现内容如下:

    配置文件的格式:

    从上面可以看见,配置文件的格式一般为如下样式:

    ####配置对象(四个#)

    ##相关的描述信息(两个#)

    #属性一 : 属性值

    #属性二 : 属性值

    #属性三 : 属性值

    总结:配置对象可以是一下一些:

    lines

    patches

    hatches

    boxplot

    font

    text

    axes

    dates

    ticks

    grids

    legend

    figure

    images

    contour plots

    errorbar plots

    histogram plots

    acatter plots

    Agg rendering

    paths

    saving figures

    2.2 通过rcParams['参数名']动态配置

    2.2/2.2.1查看到底有哪些自定义配置属性可以设置

    上面的四种设置方式是等价的。

    2.2

    2.2.2通过rcParams['属性名']去设置

    上面的 mpl.rcParams['属性名']=属性值 和 matplotlib.rcParams['属性名']=属性值 是等价

    2.2/2.2.3 通过rc()函数去配置相关属性

    总结:

    上面的三种方式等价,即通过 mpl 、plt 、matplotlib三者的 rc()方法均是等价的,该方法的第一个参数需要指定改变的对象,具体有哪些对象,上面已经说过了,然后设置相关的属性值。

    三、matplotlib相关补充

    2.1 关于配置文件的补充

    2.2 关于画图的后端引擎

    2.3 关于中文与负号相关的设置

    使用matplotlib的pyplot时,是支持unicode的,但默认字体是英文字体, 不支持中文字体,故而需要设置。

    2.3

    2.3.1通过rcParams['属性名']去设置

    2.3

    2.3.2通过font_manager工具去设置

    #第一步:导入font_manager:

    import matplotlib.font_manager as fm

    #第二步:找到中文字体在电脑中的位置,导入中文字体库

    zh_font = fm.FontProperties(fname='C:WindowsFontsmsyh.ttc')

    ''' 字体位置,msyh.ttc是微软雅黑字体

    方法二相对于方法一而言,没有那么方便,方法一是将图形中所设置的中文一次性全部显示出来,但是方法二不能,它需要将标题、坐标名称、刻度单独设置,不能一次性设置完,如下所示:

    第三步:单独针对需要设置中文的位置进行设置'''

    # 图例中出现中文:

    plt.plot(x,y, 'g-',label='一条曲线')

    plt.legend(prop=zh_font) #设置图例的中文显示

    # title和横纵坐标等地方出现中文:

    plt.xlabel('性别',fontproperties=zhfont1) #设置X轴名称

    plt.ylabel('人数',fontproperties=zhfont1) #设置Y轴标题

    plt.title('直方图',fontproperties=zhfont1) #设置图形的名称

    plt.xticks( (0,1),('男','女') ,fontproperties=zhfont1) #设置标签为中文

    #如果有希腊字母时,使用双"$...$"符号,如plt.xlabel(u'$ω$')

    2.3

    2.3.3直接修改安装目录下的matplotlibrc文件

    第一步:修改matplotlibrc文件

    使用任何一个文件编辑器(推荐vscode),修改该文件,通过ctrl+f搜索找到。

    #axes.unicode_minus : True ## use unicode for the minus symbol

    #font.family : sans-serif

    #font.sans-serif : DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

    分别修改为以下三行:

    axes.unicode_minus : False ## use unicode for the minus symbol

    font.family : Microsoft YaHei

    font.sans-serif : Microsoft YaHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

    上面修改的三行都需要删除第一个#,取消注释

    第一行,修改True为False,是为了正常显示负号

    第二行和第三行是为了使用微软雅黑作为默认字体

    第二步:删除缓存

    将用户文件夹的.matplotlib文件夹中的两项删除,然后重启Python即可(意思是关闭所有正在运行的Python窗口,然后重新打开,要不然无法生效)

    总结:

    上面三种方法均可以实现中文显示,推荐使用第一种,简单方便,第二种设置更加灵活,第三种不太推荐,因为全局的设置会破坏原本的安装结构,而又不是每一个项目都需要显示中文的,不太推荐这个。

    注意事项

    怎么知道那一种字体的名称呢?

    在使用第二种或者是第三种方法的时候,需要知道字体的名称,比如msyh.ttc,simsun.ttc,当我们打开windows中的字体文件夹,发现并找不到或者是名字又不是一样的,怎么办呢?以“微软雅黑”为例。

    在windows的Fonts文件夹下,找到微软雅黑,发现显示的是中文 微软雅黑 四个汉字,将其复制,然后粘贴到matplotlib未知的ttf文件夹中,即

    D:ProgramDataAnaconda3envs ensorflowLibsite-packagesmatplotlibmpl-dataonts tf

    这是专门存放字体的文件夹,粘贴之后发现,它本质上就是msyh.ttc字体文件,现在就方便使用了。

    下面是常用的一些中文字体的对应关系:

    此外,对于拉丁文字体、藏语字体、朝语字体、日语字体等的处理方式是一样的。

    下面老师给大家分享一下学习路线大家要好好加强自身的学习,才能不被社会淘汰,加油!

    希望大家获得路线和视频的同时,能够好好珍惜!关注转发文章添加微信:15803464551

    备注:A   就可获取到了!

    麻烦转发一下文章!

    就行了。

    第一阶段:Python入门;第二阶段:Python 深入与提高;第三阶段:Python 网络与并发编程;第四阶段:数据库编程基础;第五阶段:Linux 环境编程基础;第六阶段:Python 核心特性;第七阶段:网页编程基础;第八阶段:Python_Django 框架;第九阶段:Python_Tornado 框架;第十阶段:Python_大型电商项目;第十一阶段:Python 爬虫开发;第十二阶段:面试和成功求职的秘技;第十三阶段:入职后快速成长到CTO;

    大家要好好加强自身的学习,才能不被社会淘汰,加油!

    希望大家获得路线和视频的同时,能够好好珍惜!关注转发文章添加微信:15803464551

    备注:A   就可获取到了!

    麻烦转发一下文章!

    相关文章

      网友评论

        本文标题:python可视化——详解matplotlib的配置文件以及配置

        本文链接:https://www.haomeiwen.com/subject/daznwqtx.html