【Python小技巧】Python代码中加入对matplotlib版本号的识别,解决窗口最大化过程中调用代码不一致的问题

文章目录

  • 一、如何将matplotlib绘图窗口最大化
    • 方法1(适用于matplotlib3.7版本)
    • 方法2(适用于matplotlib3.8版本)
  • 二、终极解决办法
  • 总结


一、如何将matplotlib绘图窗口最大化

在使用python的matplotlib绘图时,想要最大化,有方法采用在
import matplotlib.pyplot as plt之后,在plt.show()之前插入如下代码:

方法1(适用于matplotlib3.7版本)

figmanager = plt.get_current_fig_manager()
figmanager.window.state('zoomed')    #最大化
# figManager.resize(*figManager.window.maxsize()) #最大化

如果出现报错:AttributeError: ‘MainWindow’ object has no attribute ‘state’。就再试试下面的方法。

方法2(适用于matplotlib3.8版本)

figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()   #最大化

如果出现报错:AttributeError: ‘_tkinter.tkapp’ object has no attribute ‘showMaximized’,就换成方法1的代码。

二、终极解决办法

既然这么折腾,如果我们有多个环境,那我们可不可以在Python代码中加入对matplotlib版本号的识别。这样无论matplotlib3.7版本、3.8版本均可运行无误。

既然思路有,方法就很简单,具体代码如下:

    import matplotlibimport matplotlib.pyplot as pltfig = plt.figure(figsize=(16, 8))if matplotlib.__version__ < '3.8':figmanager = plt.get_current_fig_manager()figmanager.window.state('zoomed') # 窗口最大化else:figManager = plt.get_current_fig_manager()figManager.window.showMaximized() # 窗口最大化

经测试,无论哪个环境下,均运行OK。


总结

Python在更新,Python的各种库也在更新,有时候碰到之前的调用方法用不了了,是常有的事儿。这个比较头痛。

以后,大家在发现问题后,也要多留一个心,同样的代码运行不了,很可能就是环境不一样了。关键的几个大库,版本一定要匹配。对于版本不一致的问题,如果可以判断版本号,均可以在代码中设置判断语句,以保证代码运行在哪个环境都不报错。

如果对你有帮助,就留个赞吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/7838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

传输层协议:TCP 与 UDP

目录 一 .传输层协议概述 UDP&#xff08;用户数据报协议&#xff09; TCP&#xff08;传输控制协议&#xff09; 进程之间的通信 二.TCP 段格式 TCP 首部格式 选项 验证 TCP 段格式 三.TCP 连接 TCP 连接建立 TCP 数据传输 TCP 连接关闭 TCP 连接复位 传输控制块…

Elsevier旗下双1区TOP刊,8.8分影响因子加上超低自引率,各指标领跑计算机类SCI

【SciencePub学术】 今天小编给大家带来了一本计算机类的高分优刊解读&#xff0c;隶属于Elsevier出版社&#xff0c;JCR1区&#xff0c;中科院1区TOP&#xff0c;影响因子高达8.7&#xff0c;领域相符的学者可考虑&#xff01; APPLIED SOFT COMPUTING 1 期刊概况 【期刊简…

3D渲染是什么?渲染100邀请码1a12

3D渲染是把3D模型转换为2D图像或动画的过程&#xff0c;涉及到多方面知识&#xff0c;这篇文章我们就来了解下。 1、3D渲染的原理 3D渲染的原理是模拟光线在三维空间中的传播和反射&#xff0c;根据物体在空间中的分布&#xff0c;计算出每个像素的颜色和亮度等数值&#xff…

⚡REST 和 SOAP 协议有什么区别?

原文链接&#xff1a;https://document360.com/blog/rest-vs-soap/ API 是应用程序编程接口&#xff08;Application Programming Interface&#xff09;的缩写。API 规定了不同的软件组件应如何以编程方式进行交互和通信。 最常见的 API 类型就是 Web API。网络应用&#xff…

RTMP(Real-Time Messaging Protocol)

RTMP&#xff08;Real-Time Messaging Protocol&#xff09;是一种用于实时流媒体的传输协议&#xff0c;由Adobe Systems公司开发并广泛用于流媒体传输&#xff0c;特别是在视频直播和点播应用中。RTMP协议基于TCP&#xff08;Transmission Control Protocol&#xff09;&…

笔试强训Day19 数学知识 动态规划 模拟

[编程题]小易的升级之路 题目链接&#xff1a;小易的升级之路__牛客网 思路&#xff1a; 按题目写即可 注意辗转相除法。 AC code&#xff1a; #include<iostream> using namespace std; int gcd(int a, int b) {return b ? gcd(b, a % b) : a; } int main() {int n…

Terraform局部值

Terraform输入变量用于从外部传递值到Terraform模块内部进行使用&#xff0c;如果把Terraform代码看作是一个函数的话&#xff0c;Terraform输入变量就是函数的输入参数。 Terraform局部值则用于在Terraform模块内部定义反复使用的常量值或表达式&#xff0c;如果把Terraform代…

HCIP的学习(13)

第五章&#xff0c;重发布和路由策略 重发布 ​ 在路由协议的边界设备上&#xff0c;将某一种路由协议的路由信息引入到另一种路由协议中&#xff0c;这个操作被称为路由引入或者路由重分发。----技术本质为重发布。 条件 必须存在ASBR设备&#xff08;路由边界设备&#x…

刷题之子序列中的 k 种字母

子序列中的 k 种字母 https://kamacoder.com/problempage.php?pid1028 #include<iostream> #include<string> #include<vector> #include<cmath> using namespace std; #define mod 1000000007int main() {int n0;int k0;cin>>n>>k;stri…

算法提高之树的最长路径

算法提高之树的最长路径 核心思想&#xff1a;树形dp 枚举路径的中间节点用f1[i] 表示i的子树到i的最长距离,f2[i]表示次长距离最终答案就是max(f1[i]f2[i]) #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N …

matlab

图像配准&#xff1a; %手动选择执行图片(由于程序为分开&#xff0c;此处保存的mat文件为图MRI6的信息&#xff0c;所以请选择图MRI6) [filename,pathname]uigetfile({*.jpg;*.bmp;*.tif;*.png;*.gif,All Image Files;*.*,All Files}); image imread([pathname,filename]); …

C++创建文件夹和多级目录

在C中&#xff0c;你可以使用跨平台的第三方库来进行文件系统操作&#xff0c;其中比较常用的是Boost库和C17标准引入的std::filesystem。std::filesystem提供了一个跨平台的文件系统操作接口&#xff0c;包括创建目录、删除目录等功能。 std::filesystem::create_directory()…

本机MySQL数据库服务启动了,但是cmd登录不上10061

注意&#xff1a;不建议安装MySQL8&#xff0c;建议直接使用phpstudy中自带的MySQL5.7 错误信息 ERROR 2003 (HY000): Cant connect to MySQL server on x.x.x.x (10061) 原因 可能是端口号错误。比如修改了my.ini中&#xff0c;或者phpstudy中数据库端口的配置&#xff0c;…

【Linux】Linux线程

一、Linux线程的概念 1.什么是线程 1.一个进程的一个执行线路叫做线程&#xff0c;线程的一个进程内部的控制序列。 2.一个进程至少有一个执行线程 3.线程在进程内部&#xff0c;本质是在进程地址空间内运行 4.操作系统将进程虚拟地址空间的资源分配给每个执行流&#xff0…

【C 数据结构-动态内存管理】3. 伙伴系统管理动态内存

文章目录 【 1. 伙伴系统的结构设计 】【 2. 分配算法 】【 3. 回收算法 】 伙伴系统 本身是一种动态管理内存的方法&#xff0c;和边界标识法的区别是&#xff1a;使用伙伴系统管理的存储空间&#xff0c;无论是空闲块还是占用块&#xff0c;大小都是 2 的 n 次幂&#xff08;…

新火种AI|挑战谷歌,OpenAI要推出搜索引擎?

作者&#xff1a;一号 编辑&#xff1a;美美 在AI革新的浪潮下&#xff0c;谷歌搜索迎来了越来越多的“挑战者”。 最近&#xff0c;据多家外媒的消息&#xff0c;有知情人士透露&#xff0c;OpenAI正计划上线一款基于ChatGPT的大型产品&#xff0c;将提供一个新的搜索引擎&…

[译]Elasticsearch _source Doc_values And Store Performance

原文地址 https://sease.io/2021/02/field-retrieval-performance-in-elasticsearch.html 在这篇博文中&#xff0c;我想从性能的角度探讨 Elasticsearch 为我们存储字段和查询时检索字段提供了哪些可能性。 事实上&#xff0c;Lucene&#xff08;Elasticsearch 和 Solr 构建的…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第16课-跳转私信

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第16课-跳转私信 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎&am…

7-Zip解压缩软件功能介绍

7-Zip是一款开源且免费的压缩软件&#xff0c;它以其高压缩比和支持多种压缩格式而受到用户的青睐。以下是7-Zip的一些特点以及与其他常见解压缩软件的区别和优缺点&#xff1a; 7-Zip的特点&#xff1a; 开源免费&#xff1a;7-Zip是完全免费且开源的&#xff0c;用户可以在…

Redis数据结构精讲:选择与应用实战指南

在Redis中选择合适的数据结构时&#xff0c;需要根据具体的应用场景和需求来决定。以下是Redis五种基本数据结构及其适用场景的概览&#xff0c;帮助你做出决策&#xff1a; String&#xff08;字符串&#xff09;: 特点: 可以存储字符串或整数值&#xff0c;支持原子性的增减操…