数据分析--matplotlib.pyplot--rc参数

本文介绍如何使用pyplot的rc配置文件来定制图形的各种属性,包括线条样式、颜色、宽度及字体设置等,确保中文和特殊符号能正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pyplot 使用 rc 配置文件来自定义图形的各种默认属性,被称为 rc 配置或 rc 参数。
在 pyplot 中几乎所有的默认属性都是可以控制的,例如视图窗口大小以及每英寸点数、线条宽度、颜色和样式、坐标轴、坐标和网格属性、文本、字体等。线条的常用 rc 参数名称、解释与取值:

线条的常用 rc 参数名称、解释与取值:
在这里插入图片描述
常用线条类型解释:
在这里插入图片描述
线条标记解释:
在这里插入图片描述
注意:由于默认的 pyplot 字体并不支持中文字符的显示,因此需要通过设置 font.sans-serif 参数改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴中的部分字符无法显示,因此需要同时更改 axes.unicode_minus 参数。

#显示中文
#注意必须在创建画布之前声明
plt.rcParams[‘font.sans-serif’] = ‘SimHei’
#设置正常显示符号,解决保存图像是符号’-‘显示方块
plt.rcParams[‘axes.unicode_minus’] = False

除了设置线条和字体的 rc 参数外,还有设置文本、箱线图、坐标轴、刻度、图例、标记、图片、图像保存等 rc 参数。具体参数与取值可以参考官方文档。

#rc参数往往用来设置线宽、线样式、点的类型、颜色

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(0,1.1,0.01)
y1 = x**2
y2 = x**4

#显示中文
#注意必须在创建画布之前声明
plt.rcParams['font.sans-serif'] = 'SimHei'

#设置正常显示符号,解决保存图像是符号’-‘显示方块
plt.rcParams['axes.unicode_minus'] = False

#可视化
plt.figure()

#常用设置名称
#标题
plt.title('走向图')

#x轴
plt.xlabel('x')

#y轴
plt.ylabel('y')

#x和y轴的刻度范围
plt.xlim((0,1))#范围
plt.ylim((0,1))

#刻度间距
# plt.xticks([0,0.5,1])
# plt.yticks([0,0.4,0.8,1])

#在此处加rc参数
plt.plot(x,y1,color='red',linewidth=1,linestyle=':')
plt.plot(x,y2,color='green',linewidth=2,linestyle='-.')

#图例
#注意图例要加在显示之前
plt.legend(['y=x^2','y=x^4'])

plt.savefig('img/2.png')

plt.show()

在这里插入图片描述

Traceback (most recent call last): File "C:\Users\Wangjiajun\.conda\envs\pytorch\lib\site-packages\IPython\core\interactiveshell.py", line 3526, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "<ipython-input-2-fcb2e09ebcfb>", line 1, in <module> runfile('D:/实验数据/代码/tarnsform/con_transformer1.py', wdir='D:/实验数据/代码/tarnsform') File "D:\pycharm\PyCharm 2020.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile pydev_imports.execfile(filename, global_vars, local_vars) # execute the script File "D:\pycharm\PyCharm 2020.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "D:/实验数据/代码/tarnsform/con_transformer1.py", line 673, in <module> plt.figure(1) File "C:\Users\Wangjiajun\.conda\envs\pytorch\lib\site-packages\matplotlib\pyplot.py", line 1027, in figure manager = new_figure_manager( File "C:\Users\Wangjiajun\.conda\envs\pytorch\lib\site-packages\matplotlib\pyplot.py", line 549, in new_figure_manager _warn_if_gui_out_of_main_thread() File "C:\Users\Wangjiajun\.conda\envs\pytorch\lib\site-packages\matplotlib\pyplot.py", line 526, in _warn_if_gui_out_of_main_thread canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas) File "C:\Users\Wangjiajun\.conda\envs\pytorch\lib\site-packages\matplotlib\pyplot.py", line 358, in _get_backend_mod switch_backend(rcParams._get("backend")) File "C:\Users\Wangjiajun\.conda\envs\pytorch\lib\site-packages\matplotlib\pyplot.py", line 416, in switch_backend canvas_class = module.FigureCanvas AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas'
最新发布
04-03
从错误信息来看,这是一个 `matplotlib` 相关的问题。以下是详细的分析和解决步骤: ### 错误原因分析 1. **核心问题**: 错误提示 `AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas'` 表明当前使用的 Matplotlib 后端 (`backend`) 配置有问题。Matplotlib 的后端负责处理图形渲染、交互等任务,如果指定的后端无法正常加载或缺少某些关键属性,则会引发此异常。 2. **可能的原因**: - 当前环境下的 Matplotlib 版本与所选后端不兼容。 - 系统环境中可能存在多个版本的 Matplotlib 或其他依赖库冲突。 - 使用了非标准的后端配置(如 `backend_interagg`),而该模块未正确安装或初始化。 --- ### 解决方案 #### 方法一:检查并设置正确的后端 尝试显式地切换到一个稳定的后端(例如 `'TkAgg'`, `'Qt5Agg'`)。可以将以下代码添加到脚本开头: ```python import matplotlib matplotlib.use('TkAgg') # 替换为你需要的后端,比如 TkAgg, Qt5Agg ``` 然后重新运行程序。 #### 方法二:更新 Matplotlib 和相关依赖 确保你的 Matplotlib 及其依赖项是最新的,并且没有版本冲突。可以通过以下命令更新: ```bash pip install --upgrade matplotlib ``` #### 方法三:验证后端是否可用 通过以下代码测试系统中支持的所有后端: ```python import matplotlib print(matplotlib.rcsetup.all_backends) ``` 选择列表中存在的某个后端作为目标后端进行设置。 #### 方法四:调试环境变量 有时 PyCharm 或 Jupyter Notebook 中可能会强制覆盖默认后端配置。可以在 IDE 设置中禁用自动修改后端的行为,或者直接在脚本中明确指定后端。 --- ### 总结 上述方法可以帮助你定位并解决问题。通常情况下,推荐优先尝试更改后端设置(方法一)以及升级 Matplotlib 库(方法二)。如果仍存在问题,请进一步排查是否存在第三方插件或其他潜在干扰因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值