Win10 x64下Anaconda 5.1+matplotlib2.2.2样本数据缺失问题求助
解决方案:matplotlib sample_data 目录缺失及路径不匹配问题
针对你在Windows 10 x64 + Anaconda 5.1 + matplotlib 2.2.2环境下遇到的样本数据目录问题,我整理了几个实用的解决办法,你可以按需选择:
方法1:手动迁移样本数据目录
这是最直接的办法,把conda-forge安装的sample_data文件夹移到matplotlib期望的路径下:
- 找到你的Anaconda环境路径,默认路径一般是
C:\Users\[你的用户名]\Anaconda3;如果用了虚拟环境,路径是C:\Users\[你的用户名]\Anaconda3\envs\[你的环境名] - 进入
Lib\site-packages\matplotlib目录,你会看到这里有conda-forge安装的sample_data文件夹 - 把这个
sample_data文件夹剪切到同目录下的mpl-data文件夹内,这样就完全符合matplotlib.cbook.get_sample_data()的默认路径要求了
方法2:修改matplotlib全局配置文件
通过配置文件指定样本数据的实际路径,一劳永逸:
- 打开命令行,运行以下命令找到matplotlib配置文件的位置:
python -c "import matplotlib; print(matplotlib.matplotlib_fname())" - 用文本编辑器打开这个配置文件,找到
datapath配置项(如果没有就手动添加一行),把它设置为你的sample_data文件夹的实际路径,比如:
(注意路径要用正斜杠datapath = C:/Users/XXX/Anaconda3/Lib/site-packages/matplotlib/sample_data/或者双反斜杠\\,避免转义问题) - 保存配置文件后,重启你的Python环境(比如关闭Jupyter Notebook或者终端再重新打开),之后
get_sample_data()就会自动去指定路径读取样本数据了
方法3:代码内临时指定路径
如果不想修改全局配置,也可以在每次运行依赖样本数据的代码前,临时设置数据路径:
import matplotlib as mpl # 替换成你的sample_data实际路径 mpl.rcParams['datapath'] = 'C:/Users/XXX/Anaconda3/Lib/site-packages/matplotlib/sample_data'
额外说明
你的matplotlib版本(2.2.2)比较老旧,和新版mpl_sample_data的打包逻辑不太兼容,这才导致了路径不匹配的问题。如果之后有机会升级matplotlib到3.x及以上版本,这个问题应该会自动消失——新版本的matplotlib已经优化了样本数据的管理方式,不会再出现这类路径错位的情况。
内容的提问来源于stack exchange,提问作者Gabriele
相关产品推荐
相关产品推荐

