【matplotlib基础】--绘图配置

matplotlib,基础,绘图,配置 · 浏览次数 : 151

小编点评

**matplotlib 配置参数** **坐标轴配置** * `axes.prop_cycle`:设置颜色循环,默认值为 `cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])` * `axes.prop`:设置坐标轴颜色,默认值为 `facecolor="white"` **网格配置** * `grid`:设置网格显示为 True,默认值为 `True` * `linestyle`:设置网格线类型,默认值为 `solid` * `linewidth`:设置网格线宽度,默认值为 2 * `alpha`:设置网格线透明度,默认值为 0.5 **刻度配置** * `xtick` 和 `ytick`:设置 X 和 Y 轴刻度的相关设置,例如颜色、方向等 * `color`:设置每个刻度线的颜色,默认值为 `g` **颜色列表** * `color`:设置图形中所有曲线的颜色,默认值为从 `#1f77b4` 开始的序列 * `colors`:自定义颜色列表,默认值为 `cycler(color, ['#9467bd', '#8c564b', '......'])` **总结** matplotlib 配置参数可以用于多种设置,以优化图形显示效果。可以通过 `plt.rcParams` 获取所有配置参数的值,并根据需要修改它们以达到最佳结果。

正文

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} 个")

image.png

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

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

image.png

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

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} 个")

image.png

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

设置方法和效果如下:

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

image.png

上面的示例分别设置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()

image.png

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

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

5. 总结

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

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

与【matplotlib基础】--绘图配置相似的内容:

【matplotlib基础】--绘图配置

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

【matplotlib基础】--坐标轴

Matplotlib的坐标轴是用于在绘图中表示数据的位置的工具。 坐标轴是图像中的水平和垂直线,它们通常表示为 x 轴和 y 轴。坐标轴的作用是帮助观察者了解图像中数据的位置和大小,通常标有数字或标签,以指示特定的值在图像中的位置。 1. 坐标轴范围 Matplotlib绘制图形时,会自动根据X,Y

【matplotlib基础】--刻度

Matplotlib中刻度是用于在绘图中表示数据大小的工具。 刻度是坐标轴上的数字或标签,用于指示数据的大小或值,通常以整数或小数表示,具体取决于坐标轴的类型和限制。 1. 主次刻度 默认的绘制时,坐标轴只有默认的主要刻度,如下所示: from matplotlib.ticker import Mu

【matplotlib基础】--画布

Matplotlib 库是一个用于数据可视化和绘图的 Python 库。它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。 使用 Matplotlib 的过程中,遇到的难点并不在于绘制各类的图形,因为每种图形都有其对应的API。难点在于

【matplotlib 基础】--目录(完结)

Matplotlib 库是一个用于数据可视化和绘图的 Python 库。 它提供了大量的函数和类,可以帮助用户轻松地创建各种类型的图表,包括直方图、箱形图、散点图、饼图、条形图和密度图等。 本系列具体内容包括: 画布 画布是其他所有的元素的载体,可以说是最重要,也是最容易被忽视的元素。 绘制图形之前

数据分析---matplotlib模块的使用

1.摘要 在数据可视化、统计绘图和图表生成领域,Python 被广泛使用,其中 Matplotlib 是一个极其重要的基础三方库。本博客旨在介绍 Python 及其三方库 Matplotlib 的详细信息,包括 Matplotlib 的安装步骤、示例代码及使用注意事项。 2.引言 2.1 什么是Ma

【matplotlib基础】--几何图形

除了绘制各类分析图形(比如柱状图,折线图,饼图等等)以外,matplotlib 也可以在画布上任意绘制各类几何图形。这对于计算机图形学、几何算法和计算机辅助设计等领域非常重要。 matplitlib 中的 patches 类提供了丰富的几何对象,本篇抛砖引玉,介绍其中几种常用的几何图形绘制方法。 其

【matplotlib基础】--3D图形

matplotlib 在1.0版本之前其实是不支持3D图形绘制的。 后来的版本中,matplotlib加入了3D图形的支持,不仅仅是为了使数据的展示更加生动和有趣。更重要的是,由于多了一个维度,扩展了其展示数据分布和关系的能力,可以一次从三个维度来比较数据。 下面介绍在matplotlib中绘制各类

【matplotlib基础】--子图

使用Matplotlib对分析结果可视化时,比较各类分析结果是常见的场景。在这类场景之下,将多个分析结果绘制在一张图上,可以帮助用户方便地组合和分析多个数据集,提高数据可视化的效率和准确性。 本篇介绍Matplotlib绘制子图的常用方式和技巧。 1. 添加子图的方式 添加子图主要有两种方式,一种是

【matplotlib基础】--样式表

Matplotlib库 由于诞生的比较早,所以其默认的显示样式很难符合现在的审美,这也是它经常为人诟病的地方。 不过,经过版本更迭之后,现在 Matplotlib 已经内置了很多样式表,通过使用不同的样式表,可以整体改变绘制图形的风格,不用再调整一个个显示参数。 1. 样式表的使用 1.1. 所有内