matplotlib库学习之rcParams模块
一、简介
rcParams
是 Matplotlib 的运行时配置(rc)参数的集合,它是一个字典对象。通过 rcParams
,用户可以控制 Matplotlib 的默认行为和样式,例如字体大小、图表颜色、线条样式等。
二、语法和参数
要访问或设置 rcParams
,可以使用类似字典的语法。例如:
import matplotlib.pyplot as plt
# 查看当前的参数设置
print(plt.rcParams['figure.figsize'])
# 修改参数设置
plt.rcParams['figure.figsize'] = [10, 5]
常用参数包括但不限于:
figure.figsize
: 图表大小,单位为英寸axes.titlesize
: 坐标轴标题的字体大小lines.linewidth
: 线条宽度savefig.dpi
: 保存图像的分辨率
三、实例
3.1 查看和修改图表大小
import matplotlib.pyplot as plt
import numpy as np
# 设置图表大小
plt.rcParams['figure.figsize'] = [10, 5]
# 创建一个简单的图表
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title('Sine Wave')
plt.show()
输出:
<图表显示窗口>
3.2 修改线条宽度
import matplotlib.pyplot as plt
import numpy as np
# 设置线条宽度
plt.rcParams['lines.linewidth'] = 2.5
# 创建一个简单的图表
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title('Sine Wave with Custom Line Width')
plt.show()
输出:
<图表显示窗口>
四、注意事项
- 在修改
rcParams
时,确保是在绘图之前进行。否则,之前的设置可能不会生效。 - 修改
rcParams
会影响当前脚本的所有图表。如果只想对特定图表进行设置,可以使用matplotlib.axes.Axes
或matplotlib.figure.Figure
的方法进行局部设置。 - 使用
plt.rcdefaults()
可以重置rcParams
为默认值。
五、所有参数列表及默认值(供查阅)
打印代码:
import matplotlib.pyplot as plt
# 获取matplotlib的配置参数
rc_params = plt.rcParams
# 打印rc_params字典
for key, value in rc_params.items():
print(f"{
key}: {
value}")
输出:
_internal.classic_mode: False # 是否使用经典模式
agg.path.chunksize: 0 # 聚合路径的块大小
animation.bitrate: -1 # 动画比特率
animation.codec: h264 # 动画编码
animation.convert_args: ['-layers', 'OptimizePlus'] # 动画转换参数
animation.convert_path: convert # 动画转换路径
animation.embed_limit: 20.0 # 动画嵌入限制
animation.ffmpeg_args: [] # ffmpeg 参数
animation.ffmpeg_path: ffmpeg # ffmpeg 路径
animation.frame_format: png # 动画帧格式
animation.html: none # 动画 HTML 格式
animation.writer: ffmpeg # 动画写入器
axes.autolimit_mode: data # 轴自动限制模式
axes.axisbelow: line # 轴在网格线下方
axes.edgecolor: black # 轴边缘颜色⭐⭐⭐⭐⭐
axes.facecolor: white # 轴背景颜色⭐⭐⭐⭐⭐
axes.formatter.limits: [-5, 6] # 轴格式化限制
axes.formatter.min_exponent: 0 # 最小指数
axes.formatter.offset_threshold: 4 # 偏移阈值
axes.formatter.use_locale: False # 使用本地化
axes.formatter.use_mathtext: False # 使用数学文本
axes.formatter.useoffset: True # 使用偏移
axes.grid: False # 轴网格⭐⭐⭐⭐⭐
axes.grid.axis: both # 网格轴⭐⭐⭐⭐⭐
axes.grid.which: major # 网格主要
axes.labelcolor: black # 标签颜色⭐⭐⭐⭐⭐
axes.labelpad: 4.0 # 标签填充
axes.labelsize: medium # 标签大小⭐⭐⭐⭐⭐
axes.labelweight: normal # 标签权重
axes.linewidth: 0.8 # 轴线宽度⭐⭐⭐⭐⭐
axes.prop_cycle: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']) # 属性循环
axes.spines.bottom: True # 底部脊柱
axes.spines.left: True # 左侧脊柱