xue_er 发表于 2024-10-29 14:20:36

求助

代码
import numpy as np
from matplotlib import pyplot as plt

plt.rcParams['font.sans-serif']=['KaiTi']
plt.rcParams['axes.unicode minus']= False

x1 = np.arange(5)

y1 = np.random.randint(10,20,5)
y2 = np.random.randint(10,20,5)

bar_width = 0.3

plt.bar(x1,y1, bar_width)
plt.bar(x1 + bar_width, y2, bar_width)
tick_label = ['a', 'b','c','d','e']

plt.xticks(x1 + bar_width /2,tick_label)
plt.legend(labels=["男生""女生"],loc="upper right")
plt.show()



报错:

Traceback (most recent call last):
File "C:\Users\Lenovo\Desktop\·111.py", line 2, in <module>
    from matplotlib import pyplot as plt
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python313\Lib\site-packages\matplotlib\__init__.py", line 263, in <module>
    _check_versions()
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python313\Lib\site-packages\matplotlib\__init__.py", line 257, in _check_versions
    module = importlib.import_module(modname)
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python313\Lib\importlib\__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name, package, level)
File "C:\Users\Lenovo\AppData\Local\Programs\Python\Python313\Lib\site-packages\kiwisolver\__init__.py", line 8, in <module>
    from ._cext import (
ImportError: DLL load failed while importing _cext: 找不到指定的模块。


版本:
matplotlib      3.9.2
numpy         2.1.2
python         3.13



FishC 发表于 2024-10-29 14:43:21

根据报错信息,似乎是`matplotlib`或其依赖库安装有问题。以下步骤可能有助于解决问题:

1. **确保Python和库的兼容性**:
   - Python 3.13 尚未广泛发布,可能导致与依赖库的不兼容。尝试使用较稳定的版本,如3.8或3.9。

2. **重装相关库**:
   - 重新安装`matplotlib`和`numpy`,以及`kiwisolver`,这是`matplotlib`的依赖库。

   在命令提示符中运行以下命令:

   pip uninstall matplotlib numpy kiwisolver
   pip install matplotlib numpy kiwisolver

3. **检查环境变量**:
   - 确保Python的安装路径和Scripts路径正确配置在系统环境变量中。

4. **更新pip**:
   - 更新pip到最新版本,以确保安装的库是兼容版本:

   python -m pip install --upgrade pip

此外,代码中部分不完整或错误的地方可以如下修正:

- `plt.rcParams`应该配置为一个字典,而不是False,例如:

plt.rcParams['axes.titlesize'] = 20

- 完善代码中的空白变量,如`tick_label`和`labels`:

tick_label = ['A', 'B', 'C', 'D', 'E']
plt.xticks(x1 + bar_width / 2, tick_label)
plt.legend(labels=['y1', 'y2'], loc="upper right")

重新执行代码,如果依旧有问题,可以考虑使用虚拟环境来隔离并解决库兼容性的问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

ydwb 发表于 2024-11-1 13:37:11

raise KeyError(
KeyError: 'axes.unicode minus is not a valid rc parameter (see rcParams.keys() for a list of valid parameters)'
去掉plt.rcParams['axes.unicode minus']= False后正常
版本:
matplotlib      3.7.1
numpy          1.23.5
python          3.8.10

ydwb 发表于 2024-11-1 13:45:53

plt.rcParams['axes.unicode minus']= False
应改为
plt.rcParams['axes.unicode_minus']= False
底横!
页: [1]
查看完整版本: 求助