设为首页 加入收藏

TOP

【matplotlib基础】--绘图配置(一)
2023-09-23 15:44:23 】 浏览:226
Tags:matplotlib 基础

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="
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python采集数据保存csv, 文件内容.. 下一篇递归函数和其他拓展

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目