当前位置: 首页 > news >正文

【Python小技巧】matplotlib不显示图像竟是numpy惹的祸

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、问题:df.plot() 显示不出图像
  • 二、尝试各种解决办法
    • 1. 增加matplotlib.use,设定GUI
    • 2. 升级matplotlib版本
  • 三、numpy是个重要的库
    • 1. 检查numpy版本
    • 2. 查看可用版本
    • 3. 卸载老版本,安装最新版本
    • 4. 既然2.x版本的不行,再换下1.x版本
  • 总结


前言

Python3.10 使用matplotlib绘图,显示不出图像。首先排除代码的问题,因为使用Python3.8的虚拟环境显示是OK的,换到Python3.10却不行。为什么,折腾了好久,终于让我找到原因了。

这里分享一下,希望可以帮助到大家。


一、问题:df.plot() 显示不出图像

import numpy as np
import pandas as pd
pd.options.mode.copy_on_write = True
import matplotlib.pyplot as plt
from Ashare import *def plot_draw_kline(code):df = get_price(code,frequency='1d',count=500)df['date'] = df.indexdf.plot(x='date', y=['close'], grid=True)plt.show()if __name__ == '__main__':code = 'sz000099'plot_draw_kline(code)

运行完,什么图也没渲染出来,可以看见Figer窗口,但一闪而过就结束了。

二、尝试各种解决办法

1. 增加matplotlib.use,设定GUI

使用matplotlib时经常发生plt.show()之后不显示图像的情况,查网上说,是没有后台gui所致。print(matplotlib.get_backend()) 后发现后台QtAgg,在代码中添加以下3行代码。

import matplotlib
print(matplotlib.get_backend())
matplotlib.use('QtAgg')

修改后如下:

import numpy as np
import pandas as pd
pd.options.mode.copy_on_write = True
import matplotlib
print(matplotlib.get_backend())
matplotlib.use('QtAgg')
import matplotlib.pyplot as plt
from Ashare import *def plot_draw_kline(code):df = get_price(code,frequency='1d',count=500)df['date'] = df.indexdf.plot(x='date', y=['close'], grid=True)plt.show()if __name__ == '__main__':code = 'sz000099'plot_draw_kline(code)

可修改完,问题依旧…

2. 升级matplotlib版本

其次想到的是更新matplotlib ,将从matplotlib-3.7.0版本更新到matplotlib-3.8.4。

pip install matplotlib -U -i http://pypi.douban.com/simple

升级完,问题依旧…

实在不行,卸载了重新安装。

pip uninstall matplotlib
pip install matplotlib -i http://pypi.douban.com/simple

问题依旧。

三、numpy是个重要的库

安装matplotlib 默认会顺带安装numpy,会不会numpy版本的问题?

1. 检查numpy版本

pip show numpy查看版本为1.24.3。

(base) C:\Users\Administrator>pip show numpy
Name: numpy
Version: 1.24.3

2. 查看可用版本

使用命令pip install numpy==1000 ,故意输入一个不存在的版本,会显示所有可用版本。

(base) C:\Users\Administrator>pip install numpy==1000
ERROR: Could not find a version that satisfies the requirement numpy==1000 (from versions: 1.3.0, 1.4.1, 1.5.0, 1.5.1, 1.6.0, 1.6.1, 1.6.2, 1.7.0, 1.7.1, 1.7.2, 1.8.0, 1.8.1, 1.8.2, 1.9.0, 1.9.1, 1.9.2, 1.9.3, 1.10.0.post2, 1.10.1, 1.10.2, 1.10.4, 1.11.0, 1.11.1, 1.11.2, 1.11.3, 1.12.0, 1.12.1, 1.13.0, 1.13.1, 1.13.3, 1.14.0, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.14.5, 1.14.6, 1.15.0, 1.15.1, 1.15.2, 1.15.3, 1.15.4, 1.16.0, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.16.6, 1.17.0, 1.17.1, 1.17.2, 1.17.3, 1.17.4, 1.17.5, 1.18.0, 1.18.1, 1.18.2, 1.18.3, 1.18.4, 1.18.5, 1.19.0, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.19.5, 1.20.0, 1.20.1, 1.20.2, 1.20.3, 1.21.0, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.22.0, 1.22.1, 1.22.2, 1.22.3, 1.22.4, 1.23.0rc1, 1.23.0rc2, 1.23.0rc3, 1.23.0, 1.23.1, 1.23.2, 1.23.3, 1.23.4, 1.23.5, 1.24.0rc1, 1.24.0rc2, 1.24.0, 1.24.1, 1.24.2, 1.24.3, 1.24.4, 1.25.0rc1, 1.25.0, 1.25.1, 1.25.2, 1.26.0b1, 1.26.0rc1, 1.26.0, 1.26.1, 1.26.2, 1.26.3, 1.26.4, 2.0.0b1, 2.0.0rc1)
ERROR: No matching distribution found for numpy==1000

3. 卸载老版本,安装最新版本

先卸载再安装

pip uninstall numpy
pip install numpy==2.0.0rc1

结果如下:

(base) C:\Users\Administrator>pip uninstall numpy
Found existing installation: numpy 1.24.3
Uninstalling numpy-1.24.3:Would remove:d:\programdata\anaconda3\lib\site-packages\numpy-1.24.3.dist-info\*d:\programdata\anaconda3\lib\site-packages\numpy\*d:\programdata\anaconda3\scripts\f2py-script.pyd:\programdata\anaconda3\scripts\f2py.exe
Proceed (Y/n)? ySuccessfully uninstalled numpy-1.24.3(base) C:\Users\Administrator>pip install numpy==2.0.0rc1

一顿操作后,运行代码,奇迹还是没有出现。

4. 既然2.x版本的不行,再换下1.x版本

这里就换下1.26.4版本试试,不行就再降低一个版本。

pip uninstall numpy
pip install numpy==1.26.4

命令行运行完毕,再次运行Python程序,这次竟然成功了(喜出望外)!
在这里插入图片描述


总结

几经折腾,看来不是Python 3.10 的问题,问题出在各种库的互相配合上。虽然通过虚拟一个低版本的python环境也可以解决matplotlib显示的问题。但作为研究,我们还是要深入一些。numpy作为科学运算一个重要的库,是pandas等许多库的依赖库,版本太低或太高都会影响运算。

虽然折腾,但以后,遇到问题又多了一个思路,也不失为一个新的收获!

如果有帮到你,不妨解决完问题,过来点个赞!

相关文章:

【Python小技巧】matplotlib不显示图像竟是numpy惹的祸

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、问题:df.plot() 显示不出图像二、尝试各种解决办法1. 增加matplotlib.use,设定GUI2. 升级matplotlib版本 三、numpy是个重要的库1. …...

【AIGC】1、爆火的 AIGC 到底是什么 | 全面介绍

文章目录 一、AIGC 的简要介绍二、AIGC 的发展历程三、AIGC 的基石3.1 基本模型3.2 基于人类反馈的强化学习3.3 算力支持 四、生成式 AI(Generative AI)4.1 单模态4.1.1 生成式语言模型(Generative Language Models,GLM&#xff0…...

云计算技术概述_3.云计算的部署方式

根据NIST的定义,云计算从部署模式上看可以分为公有云、社区云、私有云和混合云四种类型。 注:NIST(美国国家标准与技术研究院)是美国商务部下属的一个物理科学实验室和非监管机构。 其任务是促进创新和行业竞争力。 NIST 将其活动…...

简述 BIO 、NIO 模型

BIO : 同步阻塞I/O(Block IO) 服务器实现模式为每一个连接一个线程,即客户端有连接请求时服务器就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,此处可以通过线程池机制进行优化。 impo…...

【Python小练】随机验证码

题目 提示输出含数字、字母的四位随机数,输入提示的验证码进行验证,验证码正确结束程序,验证码错误继续输入。 分析 我们可以通过random模块生成0到9的随机数,也可以通过生成65到90的随机数,将65到90的随机ASCLL码转换…...

《1w实盘and大盘基金预测 day30》

今日预测: 3123-3150-3177 探底回升,震荡上涨,收小红小绿 双创指数后期上涨的幅度也是会大于上证的,四月底的时候就提醒建仓。 关注板块:医疗、地产、电力、证券 这周预测 这周上证指数最高看到3200 继续看涨&#…...

软件工程案例学习-图书管理系统-面向对象方法

文档编号:LMS_1 版 本 号:V1.0 ** ** ** ** ** ** 文档名称:需求分析规格说明书 项目名称:图书管理系统 项目负责人:计敏 胡杰 ** ** …...

python:机器学习特征优选(过滤法)

作者:CSDN @ _养乐多_ 本文将介绍如何使用 python 语言使用过滤法进行机器学习特征优选。分别有F值、互信息(Mutual Information,MI)、方差阈值(Variance Threshold,VT)、相关性方法。 文章目录 一、特征数据1.1 将用于分析的数据从GEE下载到本地1.2 从其他方法获取二、…...

CH32V 系列 MCU IAP 使用函数形式通过传参形式灵活指定APP跳转地址

参考: CH32V 系列 MCU IAP 升级跳转方法 CH32V103 的 IAP 问题(跳转及中断向量表重定位) 1. 沁恒的RISC-V内核MCU的IAP跳转示例程序简要分析 沁恒的RISC-V内核的MCU比如CH32V203、CH32V307等系列的EVT包中IAP升级的示例程序中都是通过使能软件中断之后&…...

教程分享:如何为跨境电商、外贸、国际展会制作二维码?

不论是做跨境电商、在全球做产品推广,还是国外的餐厅运营、参加国际展会,或者是做创意户外广告、制作个性化的个人名片、有趣的产品包装……只要是在国外使用二维码,你都可以在QR Tiger去制作您需要的二维码! 一、认识QR Tiger 二…...

ComfyUI 基础教程(十三):ComfyUI-Impact-Pack 面部修复

SD的WebUI 中的面部修复神器 ADetailer,无法在ComfyUI 中使用。那么如何在ComfyUI中进行面部处理呢?ComfyUI 中也有几个面部修复功能,比如ComfyUI Impact Pack(FaceDetailer),以及换脸插件Reactor和IPAdapter。 ComfyUI-Impact-Pack 是一个功能强大的插件,专为 ComfyUI …...

专题五_位运算(2)

目录 面试题 01.01. 判定字符是否唯一 解析 题解 268. 丢失的数字 解析 题解 371. 两整数之和 解析 题解 面试题 01.01. 判定字符是否唯一 面试题 01.01. 判定字符是否唯一 - 力扣(LeetCode) 解析 题解 class Solution { public:bool isUnique…...

ZCC5503 18V 1A 6uA低静态功耗 同步降压控制器

1. 概要 ZCC5503R 是一款基准电压源、振荡电路、 比较器 PWM/PFM 控制器构成的 CMOS 降压电路调整器,利用 PWM/PFM 自动切换控制电路达到可调占空比,具有全输入电压范围(3~18V )内的低纹波、高效率及大电流输出等特点. 2. 产…...

python操作minio中常见错误

因为我参考minio的文档操作,当时文档并不是很详细,这篇博文会统一记录自己所遇到的问题。以下的每个标题都是具体的错误信息。 minio-py文档 错误1:SSL: WRONG_VERSION_NUMBER 这个错误的原因是在创建minio的客户端时候没有关闭SSL,请使用如…...

SpringCloud-Seata分布式事务的环境搭建搭建

目录 一、版本说明 二、建立Seata Server数据库(TC-带头大哥的数据库) 三、业务库建表 四、安装Seata-Server 4.1 虚拟机里新建一个/opt/seate/seata-server文件夹,在seate文件夹下新建一个docker-compose.yml 文件 4.2 运行容器 4.3 在na…...

ChatGPT4 Turbo 如何升级体验?官网如何使用最新版GPT-4 Turbo?

本文会教大家如何教大家升级自己的GPT4到GPT4 Turbo,同时检验自己的GPT4 Turbo是否是最新版本的GPT-4-Turbo-2024-04-09 说明 新版GPT-4 Turbo再次重夺大模型排行榜王座,超越了Claude 3 Opus。 最新版本的GPT-4 Turbo被命名为GPT-4-Turbo-2024-04-09。…...

如何利用工作流自定义一个AI智能体

选择平台 目前已经有不少大模型平台都提供自定义智能体的功能,比如 百度的文心 https://agents.baidu.com/ 阿里的百炼平台 https://bailian.console.aliyun.com/。 今天再来介绍一个平台扣子(https://www.coze.cn/),扣子是…...

嵌入式学习day12

每日面试题 static 关键字在 全局变量、局部变量、函数的区别? ①全局变量static:改变作用域,改变(限制)其使用范围。 只初始化一次,防止在其他文件单元中被引用。全局变量的作用域是整个源程序&#xff…...

【Leetcode 42】 接雨水-单调栈解法

基础思路: 维持栈单调递减,一旦出现元素大于栈顶元素,就可以计算雨水量,同时填坑(弹出栈顶元素) 需要注意: 单调栈通常保存的是下标,用于计算距离 public static int trap2(int[…...

Python 贪吃蛇

文章目录 效果图:项目目录结构main.pygame/apple.pygame/base.pygame/snake.pyconstant.py 效果图: 项目目录结构 main.py from snake.game.apple import Apple # 导入苹果类 from snake.game.base import * # 导入游戏基类 from snake.game.snake im…...

计算机网络 2.4差错检验与校正

第四节 差错检验与校正 一、认识检验与校正 1.差错形成原因 内部因素(随机错):噪声脉冲、脉动噪声、衰减、延迟失真等。 外部因素(突发错):电磁干扰、太阳噪声、工业噪声等。 2.差错控制编码分类&#…...

uniapp遍历数组对象的常见方法

在 UniApp 中,遍历数组对象的方法与在普通 JavaScript 中是相同的。UniApp 是一个使用 Vue.js 开发所有前端应用的框架,因此你可以使用 Vue.js 和 JavaScript 的语法来遍历数组对象。 以下是一些常见的遍历数组对象的方法: 使用 for 循环 …...

Milvus向量数据库(一)Milvus存储byte[]类型源向量数据

两种路线&#xff1a; 第一种是把byte[]转换为List< float >&#xff0c;然后存储到Milvus的floatVector中第二种是把byte[]转换为ByteBuffer&#xff0c;然后存储到Milvus的BinaryVector中 步骤&#xff1a; 我先用的是第一种&#xff0c;但是在转换float过程中&…...

Jupyter Notebook魔术命令

Jupyter Notebook是一个基于网页的交互式笔记本&#xff0c;支持运行多种编程语言。 Jupyter Notebook 的本质式一个Web应用程序&#xff0c;便于创建和共享文学化程序文档&#xff0c;支持实现代码&#xff0c;数学方程&#xff0c;可视化和markdown。用途包括&#xff1a;数据…...

python基础---生成器

生成器 这个老师的课 这个老师的网页 获取系列有规律但是个数不确定的数据 使用迭代器的时候可以使用一个不会产生异常的迭代器, 实际记录的是生成的数据的方式, 不是实际的数据 使用迭代器的时候这一个规则的改变不方便, 需要加一个专门的方法 还有就是如果需要大量的数据,…...

wangEditor 富文本详解

前言&#xff1a;wangEditor 官网 。本文档讲解 wangEditor 在 vue3 中的使用。 一&#xff1a;快速开始 1. 安装 需要安装 wangeditor/editor、wangeditor/editor-for-vuenext 两个依赖 # 安装 editor npm install wangeditor/editor # or yarn add wangeditor/editor # o…...

文献速递:深度学习医学影像心脏疾病检测与诊断--从SPECT/CT衰减图中深度学习冠状动脉钙化评分提高了对重大不良心脏事件的预测

Title 题目 Deep Learning Coronary Artery Calcium Scores from SPECT/CT Attenuation Maps Improve Prediction of Major Adverse Cardiac Events 从SPECT/CT衰减图中深度学习冠状动脉钙化评分提高了对重大不良心脏事件的预测 01 文献速递介绍 低剂量非门控CT衰减校正&am…...

Java多线程:常见的线程的创建方法及Thread类详解

目录 一.并发编程相关概念 线程与进程 多线程 Java中线程的状态 二.线程的创建方法 方法一&#xff1a;继承Thread类 方法二&#xff1a;实现Runnable接口 其他方法 三.Thread类详解 Thread常见构造方法 Thread常见属性 Thread常见方法 start() 与 run() sleep(…...

一招搞定生产管理

劳动力成本上升,原材料价格上涨,企业生产成本逐年增加&#xff0c;市场竞争越来越激烈&#xff0c;传统的中小制造企业面临着巨大的挑战。 企业的数字化转型如今成为炙手可热的高频词语&#xff0c;越来越多的中小制造企业已经开始上云&#xff0c;实践SaaS模式的生产管理系统…...

学习CSS3,实现红色心形loading特效

试想一下&#xff0c;如果你的网站在加载过程中&#xff0c;loading图由一个老旧的菊花转动图片&#xff0c;变为一个红色的心形loading特效&#xff0c;那该有多炫酷啊。 目录 实现思路 初始化HTML部分 延迟动画是重点 设定动画效果 完整源代码 最后 实现思路 每个…...

有固定ip怎么建设网站/购物网站如何推广

1 继承 在Java中&#xff0c;类的继承是指在一个现有类的基础上去构建一个新的类&#xff0c;构建出来的新类被称为子类&#xff0c;现有类称作父类&#xff0c;子类会自动拥有父类的所有可继承的属性和方法。 1&#xff09;格式 class 子类名 extends 父类名 { } 2&#x…...

做网站容易 但运营难/搜索引擎营销的英文缩写

服务器数的计算公式是&#xff1a;以单台服务器QPS为500&#xff0c;每天8个小时计算&#xff0c;能承受的PV是500*8*60*601440万。应用需要服务器数&#xff1a;总PV数/单机PV数。转载于:https://www.cnblogs.com/tonyauto/p/11187157.html...

苏州住房和城乡建设厅网站/seo接单

1.在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。 2.pom.xml文件中&#xff0c;jar的版本判断的两种途径 1&#xff1a;如果dependencies里的dependency自己没有声明version元素&#xff0c;那么maven就 会倒dependencyManagement里面…...

网站 通管局 报备/企业培训方案

编辑&#xff1a;ll SF3004-ASEMI高压大电流快恢复管SF3004 型号&#xff1a;SF3004 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220AB 特性&#xff1a;快恢复二极管 正向电流&#xff1a;30A 反向耐压&#xff1a;400V 恢复时间&#xff1a;35ns 引脚数量&#xff1…...

长沙市网站制作哪家专业/优化推广网站怎么做最好

如我们发送两个请求&#xff0c;服务器端是什么样的行为&#xff1f; 如果产生了不相同的效果&#xff0c;那就说明这个服务不是idempotent的&#xff0c;因为多次使用产生了副作用了嘛&#xff1b;如果是这种情况&#xff0c;每次返回结果不一样的时候&#xff0c;应该使用PO…...

咸阳市住房和城乡建设规划局网站/如何做网站搜索引擎优化

怎么说接受过九年义务教育的鱼蛋还是认得一些字当然提笔忘字这种事也是经常犯的然鹅深圳有些地名也太难读了除了生僻字还有多音字相信不止我很多朋友遇到这些地名有时候想个半天也不知道咋读今天鱼蛋盘点了一批深圳最难读的地名作为深圳人的你这些地名你能读对吗&#xff1f;↓…...