TypeError: Axes3D.view_init() got an unexpected keyword argument ‘roll‘——版本问题

本文主要是介绍TypeError: Axes3D.view_init() got an unexpected keyword argument ‘roll‘——版本问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解决办法

删除roll关键字参数。

掉坑过程

今天在学习matplotlib绘制3D图形时,使用的是matplotlib官网提供的例子Plot 2D data on 3D plot

敲好代码后,运行时报错TypeError: Axes3D.view_init() got an unexpected keyword argument ‘roll’

看来官网的代码也不是全部可信的啊

爬坑过程

我第一时间想到的就是在matplotlib官网API里查找相关函数。
由于对matplotlib不是很熟悉,也没注意到报错的是Axes3D类的view_init()。导致我在查找时一直在Axes和Figure和Pyplot类里面查找,当然是一无所获。
最后在mpl_toolkits.mplot3d.axes3d.Axes3D里面找到了view_init()函数,如下:

Axes3D.view_init(elev=None, azim=None, roll=None, vertical_axis='z')

里面清楚地有roll这个关键字参数,默认为None,接受浮点数
在这里插入图片描述

那么,按道理说roll关键字参数是可以使用的,那为何又不行呢?

最后,我直接查看安装的matplotlib库,看看到底是怎么回事。有了api的指引,我很容易就找到了该函数的文件:
在这里插入图片描述

可以明显看到,文件里的view_init()函数只有elev、azim和vertical_axis三个关键字参数,并不存在官网API里写的那样

最终解决

当然,官网文档基本不会出错。我就去查看了安装的matplotlib版本,是3.5.3;而官网的API是3.7.0版本。这很可能就是出错原因所在。

首先,我先在原代码上删除roll关键字参数,确定在3.5.3版本下可以运行。
在这里插入图片描述
结果证明:在3.5.3版本的matplotlib中view_init()确实没有roll关键字参数。

随后我又将matplotlib版本更新至3.7…0,果不其然,这些输入关键字参数roll也有了提示,再次运行代码也成功了。
在这里插入图片描述

小结

果然,matplotlib版本更新也对一些函数做了更新,稍不注意版本问题就会在官网学习时遇到未知错误。只要把版本更新至和API文档相同版本就可以了。

随后,我也试着查找了matplotlib版本更新情况,果然在3.6.0版本更新中找到了view_init()函数的更新描述:
在这里插入图片描述
至此,遇到的错误完美解决!!希望看到这里的你能吸取教训。

这篇关于TypeError: Axes3D.view_init() got an unexpected keyword argument ‘roll‘——版本问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/262939

相关文章

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

MySQL磁盘空间不足问题解决

《MySQL磁盘空间不足问题解决》本文介绍查看空间使用情况的方式,以及各种空间问题的原因和解决方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录查看空间使用情况Binlog日志文件占用过多表上的索引太多导致空间不足大字段导致空间不足表空间碎片太多导致空间不足临时表空间

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页

Java中InputStream重复使用问题的几种解决方案

《Java中InputStream重复使用问题的几种解决方案》在Java开发中,InputStream是用于读取字节流的类,在许多场景下,我们可能需要重复读取InputStream中的数据,这篇文章主... 目录前言1. 使用mark()和reset()方法(适用于支持标记的流)2. 将流内容缓存到字节数组