当前位置:   article > 正文

解决pycharm使用matplotlib时,matplotlib后端设置不正确或与运行环境不兼容引起的报错:AttributeError: module ‘backend_interagg‘ ..._matplotlib agg

matplotlib agg

报错提示如下:

AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas'. Did you mean: 'FigureCanvasAgg'?

1.将jupyter notebook 上的可视化代码直接挪到pychram上, 报错

 

2.报错分析

这个错误通常是由于matplotlib后端设置不正确或与运行环境不兼容引起的。为了解决这个问题,我们可以尝试以下方法:

1. 确保matplotlib后端正确设置。
2. 升级matplotlib库。
3. 使用不同的后端。

3.解决方法

方法1:设置matplotlib后端为:交互式后端

请确保在导入`matplotlib.pyplot`之前设置后端为`TkAgg`。这是一个交互式后端,通常适用于大多数环境。

  1. import matplotlib
  2. matplotlib.use('TkAgg') # 设置为交互式后端
  3. import matplotlib.pyplot as plt
  4. import torch
  5. import torch.nn as nn
  6. import numpy as np
  7. import pandas as pd
  8. # 读取数据集
  9. file_path = r'D:\datasets\预测模型实验\PRZ liquid space leak 0.8.csv'
  10. dataset = pd.read_csv(file_path)
  11. # 将行数做成一列显式的索引列
  12. dataset.insert(0, 'Index_Column', dataset.index)
  13. # 读取'主回路1热管段冷却剂温度(℃)306.852814'的数据
  14. column_name = '主回路1热管段冷却剂温度(℃)306.852814'
  15. if column_name in dataset.columns:
  16. all_data = dataset[column_name].values
  17. print(all_data)
  18. # 可视化显示数据分布情况
  19. plt.figure(figsize=(16, 8))
  20. plt.plot(dataset[column_name])
  21. # 设置中文字体
  22. plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用中文字体(例如:黑体)
  23. plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
  24. plt.title('主回路1热管段冷却剂温度')
  25. plt.ylabel('℃')
  26. plt.xlabel('Times')
  27. plt.show()
  28. else:
  29. print(f"列'{column_name}'在数据集中不存在。")

交互显图效果: 

方法2:升级matplotlib库

确保你的matplotlib库是最新版本。你可以使用以下命令升级matplotlib:

```bash
pip install --upgrade matplotlib
```

方法3:使用不同的后端

如果`TkAgg`后端仍然有问题,可以尝试使用其他后端,如`Qt5Agg`或`Agg`。请根据需要进行修改:

  1. import matplotlib
  2. matplotlib.use('Agg') # 或者使用 'Agg' 后端
  3. import matplotlib.pyplot as plt
  4. import torch
  5. import torch.nn as nn
  6. import numpy as np
  7. import pandas as pd
  8. # 读取数据集
  9. file_path = r'D:\datasets\预测模型实验\PRZ liquid space leak 0.8.csv'
  10. dataset = pd.read_csv(file_path)
  11. # 将行数做成一列显式的索引列
  12. dataset.insert(0, 'Index_Column', dataset.index)
  13. # 读取'主回路1热管段冷却剂温度(℃)306.852814'的数据
  14. column_name = '主回路1热管段冷却剂温度(℃)306.852814'
  15. if column_name in dataset.columns:
  16. all_data = dataset[column_name].values
  17. print(all_data)
  18. # 可视化显示数据分布情况
  19. plt.figure(figsize=(16, 8))
  20. plt.plot(dataset[column_name])
  21. # 设置中文字体
  22. plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用中文字体(例如:黑体)
  23. plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题
  24. plt.title('主回路1热管段冷却剂温度')
  25. plt.ylabel('℃')
  26. plt.xlabel('Times')
  27. plt.savefig('filename.png')
  28. else:
  29. print(f"列'{column_name}'在数据集中不存在。")

注意,使用Agg后端时,需要用plt.savefig('filename.png')代替plt.show()将图像保存为文件。这在无GUI环境中很有用。 

解释:

1. 设置后端:在导入`matplotlib.pyplot`之前设置后端为交互式后端,如`TkAgg`或`Qt5Agg`。
2. 升级库:确保使用最新版本的matplotlib,以避免已知问题。
3. 尝试不同后端:根据环境和需求选择不同的后端。

以上步骤应该能够解决你在PyCharm中运行matplotlib代码时遇到的错误。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/884305?site
推荐阅读
相关标签
  

闽ICP备14008679号