为了账号安全,请及时绑定邮箱和手机立即绑定

NSInvalidArgumentException Matplotlib OS X

NSInvalidArgumentException Matplotlib OS X

慕容森 2021-10-26 16:30:06
在尝试使用 OpenCV 并尝试创建直方图(并使用 Matplotlib 绘制它)时,我遇到了一个无法解决的错误。我已经尝试将 TkAgg 指定为后端无济于事。所有这些都在一个虚拟环境中,运行 Python 3.7 和 openCV4。相关代码:import matplotlibmatplotlib.use("TkAgg")ap = argparse.ArgumentParser()ap.add_argument("-i", "--image", required=True,        help = "Path to image")args = vars(ap.parse_args())image = cv2.imread(args["image"])image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)cv2.imshow("Original", image)hist = cv2.calcHist([image], [0], None, [256], [0,256])plt.figure()plt.title("Grayscale Histogram")plt.xlabel("Bins")plt.ylabel("# of Pixels")plt.plot(hist)plt.xlim([0, 256])plt.show()cv2.waitKey(0)我尝试过的事情: - 将 TkAgg 设置为 Matplotlib 的后端,未成功 - 创建新的虚拟环境并重新链接 openCV,未成功我正在跟进一本书,所以我不相信这是任何类型的语法错误,肯定是配置之一。编辑:我也尝试在 ~/.matplotlib/matplotlibrc 中指定 TkAgg 作为后端
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

我设法通过将后端更改为 pyQT5 使其在 virtualenv 中运行


安装 matplotlib 和 pyqt 并将渲染后端更新为 qt。将它或 pip 或 pip3 直接符号链接到您的 virtualenv


pip3 install matplotlib

pip3 install PyQt5

要选择后端,你可以试试这个


touch ~/.matplotlib/matplotlibrc

echo "backend: PyQt5" >> ~/.matplotlib/matplotlibrc

或者在您的源代码中始终在任何其他 matplotlib 使用之前添加它


import matplotlib

matplotlib.use("Qt5Agg")


查看完整回答
反对 回复 2021-10-26
?
青春有我

TA贡献1784条经验 获得超8个赞

玩了一会后,我删除了虚拟环境并使用 Python3 的内置 -m venv 命令创建了一个新环境,重新链接 OpenCV,通过 Homebrew 安装了 pyqt --with-python3,并指定了 Matplotlib.use("MacOSX" ) 在我的导入行之后。


查看完整回答
反对 回复 2021-10-26
  • 2 回答
  • 0 关注
  • 294 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信