Matplotlib 提供了大量配置参数,
这些参数可以但不限于让我们从整体上调整通过 Matplotlib 绘制的图形样式,
这里面的参数还有很多是功能性的,和其他工具结合时需要用的配置。

通过plt.rcParams,可以查看所有的配置信息:

import matplotlib.pyplot as plt

print(len(plt.rcParams))
#运行结果
312

总共居然有312个配置选项。

一一介绍所有的选项意义不大,具体可参考官方文档:
https://matplotlib.org/stable/api/matplotlib_configuration_api.html#matplotlib.rcParams

本篇只是抛砖引玉,介绍几个常用的参数,目的是了解参数的使用方法和产生的效果。

1. 坐标轴

首先是坐标轴相关的配置,通过下面的代码可以看看有多个关于坐标轴的配置:

import matplotlib.pyplot as plt

count = 1
for key, val in plt.rcParams.items():
#只打印以 axes 开头的配置
if key.startswith("axes"):
print(key, " = ", val)
count += 1 #相关的配置有 38 个
print(f"axes 相关设置有: {count} 个")

一共有38个关于坐标轴的配置。
挑选一些配置,看看修改前后的效果:

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x) plt.rcParams.update(plt.rcParamsDefault)
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot(x, y1, label="sin")
ax.plot(x, y2, label="cos")
ax.legend()
plt.show()

修改了背景色,边框和网格:

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x) plt.rcParams.update(plt.rcParamsDefault)
plt.rc("axes", facecolor="#FFE4C4", edgecolor="#A52A2A", grid=True) fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot(x, y1, label="sin")
ax.plot(x, y2, label="cos")
ax.legend()
plt.show()

2. 网格

关于网格,除了通过坐标轴来设置,它还有自己的一些专门的设置选项:

count = 1
for key, val in plt.rcParams.items():
if key.startswith("grid"):
print(key, " = ", val)
count += 1 print(f"grid 相关设置有: {count} 个")

总共有5个相关的配置,设置看看效果。
代码和上面类似,这里只把设置部分的代码列出来。

plt.rcParams.update(plt.rcParamsDefault)
plt.rc("axes", grid=True)
plt.rc("grid", linestyle="solid", linewidth=2, color="g", alpha=0.5)

这是修改后的效果,修改前的效果和上一节中的一样。

3. 刻度

刻度相关的参数如下:

xcount = 1
ycount = 1
for key, val in plt.rcParams.items():
if key.startswith("xtick"):
print(key, " = ", val)
xcount += 1 if key.startswith("ytick"):
print(key, " = ", val)
ycount += 1 print(f"xtick 相关设置有: {xcount} 个")
print(f"ytick 相关设置有: {ycount} 个")

X轴刻度和Y轴刻度的相关设置各有21个。

设置方法和效果如下:

plt.rcParams.update(plt.rcParamsDefault)
plt.rc("xtick", color="g", direction="in")
plt.rc("ytick", color="r")

上面的示例分别设置X轴Y轴的颜色,以及X轴direction
direction="in" 表示刻度的小短线在图形内部,
Y轴没设置这个属性,它的刻度线是在图形外的。

4. 颜色列表

我们绘制图形的时候,一个图形中有多个曲线时,每个曲线默认就会使用不同的颜色。
这是因为配置中有一个默认的颜色列表,绘制多个图形时,会依次使用其中的颜色。

print(plt.rcParams["axes.prop_cycle"])

#运行结果
cycler('color',
['#1f77b4',
'#ff7f0e',
'#2ca02c',
'#d62728',
'#9467bd',
'#8c564b',
'#e377c2',
'#7f7f7f',
'#bcbd22',
'#17becf'])

如果去查下颜色编码的话,可以看出,前两个颜色就是蓝色和红色。
所以上面的示例中的两条曲线都是蓝色和红色。

修改下这个默认的颜色列表,看看变化效果:

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x) from matplotlib import cycler colors = cycler(
"color", ["#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"]
) plt.rcParams.update(plt.rcParamsDefault)
plt.rc("axes", prop_cycle=colors) fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot(x, y1, label="sin")
ax.plot(x, y2, label="cos")
ax.legend()
plt.show()

改变颜色列表之后,两条曲线的颜色都变了。
绘制曲线或者其他图形时,其实是有参数可以指定颜色的,为什么还需要这个颜色列表的配置?

这是因为,如果我们能够确定整体报告的风格,那么就可以在一开始就根据报告的风格设置好这个颜色列表,
然后绘制各种图形时就不需要指定颜色,极大简化后续的代码,也提高了代码的可维护性。

5. 总结

在配置 rcParams 时,我们可以根据需要修改各种选项,以达到更好的显示效果。

但需要注意的是,过多地修改 rcParams 可能会导致绘图缓慢或出现其他问题,
因此需要根据实际情况进行合理的配置。

【matplotlib基础】--绘图配置的更多相关文章

  1. 数据分析与展示——Matplotlib基础绘图函数示例

    Matplotlib库入门 Matplotlib基础绘图函数示例 pyplot基础图表函数概述 函数 说明 plt.plot(x,y,fmt, ...) 绘制一个坐标图 plt.boxplot(dat ...

  2. 第二周 数据分析之展示 Matplotlib基础绘图函数实例

    Pyplot基础图表函数 Pyplot饼图的绘制: Pyplot直方图的绘制: Pyplot极坐标图的绘制: Pyplot散点图的绘制: 单元小结: import numpy as np import ...

  3. Python——matplotlib基础绘图函数示例

    1. 2.饼图 (1) import matplotlib.pyplot as plt labels='frogs','hogs','dogs','logs'% sizes=[15,30,45,10] ...

  4. python画图matplotlib基础笔记

    numpy~~基础计算库,多维数组处理 scipy~~基于numpy,用于数值计算等等,默认调用intel mkl(高度优化的数学库) pandas~~强大的数据框,基于numpy matplotli ...

  5. Matplotlib 库 : 绘图和可视化

    一.Matplotlib基础知识 1.1Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y ...

  6. Matplotlib基础知识

    Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis水平和垂直的轴线 x轴和y轴刻度 tick刻度标示坐标轴的分隔,包括最小刻度和最大刻度 x轴和y轴刻度标签 ...

  7. matplotlib基础

    Matplotlib 基础 注:本文中的程序都默认引入了numpy库和matplotlib库,并且分别简写为np与plt:如果读者不知道怎么使用numpy库,可以移步到这一博客上进行简单的学习 一.简 ...

  8. 【Python开发】使用python中的matplotlib进行绘图分析数据

    matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中. 它的文档相当完备, ...

  9. Matplotlib基础使用

    matplotlib 一.Matplotlib基础知识 Matplotlib中的基本图表包括的元素 x轴和y轴 axis 水平和垂直的轴线 x轴和y轴刻度 tick 刻度标示坐标轴的分隔,包括最小刻度 ...

  10. QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图

    前言   QCustomPlot开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,过目 ...

随机推荐

  1. FreeSWITCH添加自定义endpoint

    操作系统 :CentOS 7.6_x64      FreeSWITCH版本 :1.10.9   日常开发过程中会遇到需要扩展FreeSWITCH对接其它系统的情况,这里记录下编写FreeSWITCH ...

  2. Sublime Text Windows/Linux平台快捷键

    编辑 按键 对应命令 Ctrl + X 删除行 Ctrl + 行后插入 Ctrl + ⇧ + 行前插入 Ctrl + ⇧ + ↑ 上移文本/选择 Ctrl + ⇧ + ↓ 下移文本/选择 Ctrl + ...

  3. Python3 解决pip报ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)

    ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.python ...

  4. tar 命令压缩时报错 Removing leading `/' from member names 解决方法

    原文:https://www.cnblogs.com/operationhome/p/9802554.html 在使用tar命令进行压缩打包的时候我们常常会遇到下面的错误.虽然它不会影响我们最后的压缩 ...

  5. THM红队基础

    Red Team Fundamentals Learn the core components of a red team engagement, from threat intelligence t ...

  6. go 常用命令总结

    转载请注明出处: go build:编译包和依赖项,生成可执行文件.命令用于编译包和依赖项,生成可执行文件.当对Go程序进行修改后,需要使用go build命令重新编译程序,以生成新的可执行文件.该命 ...

  7. 【IntelliJ】添加javaweb、tomcat语法支持

    默认情况下:idea不支持javaweb的语法 但,我们的期望是: 解决方法:配置tomcat如下: (假设你已经配置好了tomcat)接下来: 1.打开[项目结构(快捷键:Ctrl + Shift ...

  8. TypeScript又出新关键字了?

    TypeScript 5.2将引入一个新的关键字:using.当它离开作用域时,你可以用Symbol.dispose函数来处置任何东西. { const getResource = () => ...

  9. Linux下C语言实现贪吃蛇

    简单记录下贪吃蛇小游戏. 以下是源码: 1 #include <curses.h> 2 #include <stdlib.h> 3 #include <pthread.h ...

  10. MAMP VirtualHost 无效 配置踩坑

    目录 Mac系统 MAMP Apache 多虚拟主机配置无效 最终解决: 注意事项: Mac系统 MAMP Apache 多虚拟主机配置无效 和在linux.windows类似,起初添加了一个 < ...