【matplotlib】可视化解决方案——如何更改matplotlib配置信息

概述

修改 matplotlib 的配置信息,可以满足定制化的展示需求,通过修改配置中的相关属性值可以使得可视化效果更加理想,相较于使用特定的风格,临时修改配置信息的方式粒度更小,操作也更轻。修改配置信息一般有两种途径,第一种通过代码进行修改,第二种则是直接修改底层配置文件。

Matplotlib 提供了很好的绘图功能。是 Python 中使用最多的数据可视化包。从代码层面修改配置信息,通常有两种实现方法,第一种调用属性字典 matplotlib.rcParams 或者是 matplotlib.pyplot.rcParams,第二种方式是调用函数 matplotlib.rc() 或者调用 matplotlib.pyplot.rc()。如果需要恢复到默认设置,则可以调用 matplotlib.rcdefaults()

在 matplotlib 中配置信息主要包含以下要素:

  1. Iines:设置线条属性, 包括颜色、线条风格、线条宽度和标记风格等。
  2. patch: 填充 2D 空间的图形对象, 包括多边形和圆。
  3. font:字体类别、字体风格、字体粗细和字体大小等。
  4. text:文本颜色、LaTex 渲染文本等。
  5. axes: 坐标轴的背景颜色、坐标轴的边缘颜色、刻度线的大小、刻度标签的字体大小等。
  6. xtick 和 ytick: x 轴和 y 轴的主次要刻度线的大小、宽度、刻度线高颜色和刻度标签大小等。
  7. grid: 网格颜色、网格线条风格、网格线条宽度和网格透明度。
  8. legend:图例的文本大小、阴影、图例线框风格等。
  9. figure: 画布标题大小、画布标题粗细、画布分辨率 (dpi)、画布背景颜色和边缘颜色等。
  10. savefig:保存画布图像的分辨率、背景颜色和边缘颜色等。

示例

调用属性字典

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

y = np.random.randn(100)
plt.plot(y)

画图效果如下:

未修改配置信息

通过以下代码更改 lines 的相关属性

mpl.rcParams['lines.linewidth'] = 2
mpl.rcParams['lines.linestyle'] = '--'

画图结果如下:


修改了配置信息

调用函数

通过以下代码,也可以达到和上文同样的效果:

lines_dict = {"linewidth" : 2, "linestyle": '--'}
mpl.rc(**lines_dict)

项目层面配置 matplotlib

上面两个示例中 matplotlib 的配置修改都是基于代码层面展开的,这就意味着每次编写代码都得进行相同的配置,这极大降低了项目的进度。例如在一个大型项目中,通常会有多个子项目,如果在每个子项目中都进行相同的 matplotlib 配置,这回严重影响项目进度。这时就可以使用一个独立于项目本身的 matplotlib 配置文件,也就是使用 matplotlibrc 文件进行 matplotlib 配置。

配置文件主要存在于三种路径中,不同的路径决定了配置文件的调用顺序,以下就是配置文件的三个路径:

  1. 项目所在路径;
  2. 默认配置文件路径,对于 Windows 平台,配置文件存在 $HOME/.matplotlibrc 中;
  3. Matplotlib 的安装路径,对于 windows 平台,在 python\Lib\site-packages 中;

通过调用 matplotlib.matplotlib_fname() 方法可以输出系统在项目之外的搜索路径,方便大家理解。这里需要强调一点,每次重新安装 matplotlib 时,配置文件都会被覆盖,因此需要将配置文件移动到默认配置文件路径中

往期回顾

  1. 【matplotlib】可视化解决方案——如何定制化网格
  2. 【matplotlib】可视化解决方案——如何向画布添加交叉直线
  3. 【matplotlib】可视化解决方案——如何解决matplotlib中文乱码问题
  4. 【matplotlib】可视化解决方案——如何设置matplotlib风格集
  5. 【matplotlib】可视化解决方案——如何设置轴标签的透明度和大小
  6. 【matplotlib】可视化解决方案——如何向图表中添加数据表
  7. 【matplotlib】可视化解决方案——如何更改绘图区域背景颜色
  8. 【matplotlib】可视化解决方案——如何使用数学公式
  9. 【matplotlib】可视化解决方案——绘图刻度设置
  10. 【matplotlib】可视化解决方案——子图设置大标题问题解决方案

文中难免会出现一些描述不当之处(尽管我已反复检查多次),欢迎在留言区指正,相关的知识点也可进行分享,希望大家都能有所收获!!如果觉得我的文章写得还行,不妨支持一下。你的每一个转发、关注、点赞、评论都是对我最大的支持!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容