故障排除

获取Matplotlib版本

要查找Matplotlib版本号,请导入并打印 __version__ 属性:

>>> import matplotlib
>>> matplotlib.__version__
'0.98.0'

matplotlib 安装位置

通过导入Matplotlib目录并打印 __file__ 属性:

>>> import matplotlib
>>> matplotlib.__file__
'/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/__init__.pyc'

matplotlib 配置和缓存目录位置

每个用户都有一个matplotlib配置目录,其中可能包含 matplotlibrc 文件。找到你的位置 matplotlib/ 配置目录,使用 matplotlib.get_configdir() ::

>>> import matplotlib as mpl
>>> mpl.get_configdir()
'/home/darren/.config/matplotlib'

在类Unix系统上,此目录通常位于 HOME 目录位于 .config/ 目录。

此外,用户有一个缓存目录。在类Unix系统上,默认情况下,这与配置目录是分开的。找到你的位置 .cache/ 使用目录 matplotlib.get_cachedir() ::

>>> import matplotlib as mpl
>>> mpl.get_cachedir()
'/home/darren/.cache/matplotlib'

在Windows上,config目录和cache目录都是相同的,并且位于 Documents and SettingsUsers 默认目录:

>>> import matplotlib as mpl
>>> mpl.get_configdir()
'C:\\Documents and Settings\\jdhunter\\.matplotlib'
>>> mpl.get_cachedir()
'C:\\Documents and Settings\\jdhunter\\.matplotlib'

如果要使用其他配置目录,可以通过在 MPLCONFIGDIR 环境变量—请参见 在Linux和macOS中设置环境变量 .注意 MPLCONFIGDIR 设置配置目录和缓存目录的位置。

得到帮助

有很多很好的资源可以帮助Matplotlib。很有可能您的问题已经被问到:

如果您无法通过搜索找到问题的答案,请在电子邮件中向 mailing list

  • 您的操作系统(Linux/Unix用户:发布 uname -a

  • Matplotlib版本:

    python -c "import matplotlib; print(matplotlib.__version__)"
    
  • 获取Matplotlib(例如,Linux发行版的包、GitHub、PyPI或 Anaconda

  • 对您的 matplotlibrc 文件(见) 使用样式表和RCPARAM自定义Matplotlib

  • 如果问题是可再现的,请尝试提供 极小值 ,演示问题的独立python脚本。这是 the 关键步骤。如果你不能发布一段我们可以运行并重现你的错误的代码,那么得到帮助的机会就会大大减少。通常,只需将代码最小化到产生错误的最小位,就可以帮助您在 your 导致问题的代码。

  • Matplotlib通过 logging 库,以及设置日志级别的助手函数:可以调用:

    plt.set_loglevel("info")  # or "debug" for more info
    

    以获取此调试信息。

    来自的标准函数 logging 模块也适用;例如,可以调用 logging.basicConfig(level="DEBUG") 甚至在导入Matplotlib之前(这对于获取Matplotlib导入期间发出的日志信息特别必要),或者将自定义处理程序附加到“Matplotlib”记录器。如果使用自定义日志记录配置,这可能很有用。

如果您自己编写Matplotlib,请提供:

  • 你做了什么改动 setup.pysetupext.py .

  • 输出:

    rm -rf build
    python setup.py build
    

    构建输出的开头包含了许多关于平台的详细信息,这些信息对于Matplotlib开发人员诊断您的问题非常有用。

  • 您的编译器版本——例如, gcc --version .

把这些信息包含在你第一封发到邮件列表的电子邮件中会节省很多时间。

与在bug追踪器中提交bug相比,写入邮件列表可能会得到更快的响应。大多数开发人员只定期检查bug跟踪程序。如果您的问题已被确定为bug,并且无法快速解决,则可能会要求您在跟踪器中提交一个bug,这样问题就不会丢失。

最近的Git版本有问题

首先确保您有一个干净的构建和安装(请参见 如何完全删除Matplotlib ,获取最新的git更新,安装它并在调试模式下运行一个简单的测试脚本:

rm -rf /path/to/site-packages/matplotlib*
git clean -xdf
git pull
python -mpip install -v . > build.out
python -c "from pylab import *; set_loglevel('debug'); plot(); show()" > run.out

岗位 build.outrun.outmatplotlib-devel 邮件列表(请不要将Git问题发布到 users list

当然,您将希望清楚地描述您的问题、您期望的以及您正在得到什么,但通常一个干净的构建和安装会有所帮助。也见 得到帮助 .