Linux 中 图片的产生与查看

使用场景

当在 Linux 的控制台想要显示一张图片,使用matplotlib.plt.plot() 和matplotlib.plt.show() 会报错。此时可以曲线救国,不直接在服务器上查看图片,而是直接保存图片,然后将保存的图片存在本地或者远程连接到软件(pycharm,vscode)查看。

详解

import matplotlib.plt 之前插入 import matplotlib as mpl 和 mpl.use(‘Agg’)

Linux 中 图片的产生与查看

mpl.use(‘Agg’) : 表示 不显示绘图

然后再对应的需要绘制图片的位置 添加保存图片的代码(原来的显示图片的代码不需要修改);记得最后添加 plt.close(),避免在保存多张图片时图片重叠。

Linux 中 图片的产生与查看

例外

我在一个文件中(a.py)写上如下的代码,并保存了相关图片:

 import matplotlib as mpl
 mpl.use('Agg')
 import matplotlib.plt

然后在 另一个文件(b.py)中导入 a.py,并也想保存相关图片:

import a
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.plt

此时系统提出了警告

train.py:45: UserWarning:
This call to matplotlib.use() has no effect because the backend has already
been chosen; matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.

我认为是因为在 a.py 中引入过 import matplotlib.plt ,再在 b.py 中时使用 mpl.use(‘Agg’)就已经位于import matplotlib.plt 后了(这是不允许的)

然后保存图片的时候报错了

Linux 中 图片的产生与查看

解决办法:在 b.py 中注释掉如下代码,并在后面添加 : plt.switch_backend(‘agg’)

import a
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
plt.switch_backend('agg')

Original: https://www.cnblogs.com/jack-nie-23/p/16448756.html
Author: jacknie23
Title: Linux 中 图片的产生与查看

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582398/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JDK/MYSQL/TOMCAT环境变量

    IDE:智能开发环境 SDK:软件开发工具包 JDK:Java开发工具包 JRE:Java运行环境 JAR:Java档案文件 API:应用程序接口 1.JAVA_HOME的变量名下…

    Linux 2023年6月7日
    070
  • Linux上传下载神器之 lrzsz

    在开发的过程中,经常遇到 需要在 Linux 和 Windows 之间上传下载文件的情况 这时,一般都是使用 FTP 或者 WinSCP 工具进行上传下载, 虽然也能解决问题,但是…

    Linux 2023年6月13日
    085
  • zabbix监控配置流程

    zabbix监控配置流程 管理层次: 开发人员要加监控,需要让其提供监控指标运营人员要加监控,让其找开发要监控指标运维人员要加监控,让运营人员去找开发要监控指标。 配置层次: 1….

    Linux 2023年6月6日
    0102
  • Zabbix 使用心得总结

    zabbix 使用中部分功能总结1、监控采集的值(如磁盘空间、流量数据等)无需脚本进行单位转换,zabbix可自动转换为合适的单位 如采集的字节可自动转换为KB、MB 如果设置了单…

    Linux 2023年6月14日
    0148
  • 从零开始制作一个linux iso镜像

    一、前言 对于一个极简化的linux系统而言,只需要三个部分就能组成,它们分别是一个linux内核、一个根文件系统和引导。以下是本文制作linux iso镜像所用到的系统和软件: …

    Linux 2023年5月27日
    086
  • docker search和pull超时

    练习时用docker查找镜像或者pull镜像时总是超时,折腾一圈发现是 时钟同步的问题,实验环境的时间偏差太大,重新同步一次就ok了。 #ntpdate cn.pool.ntp.o…

    Linux 2023年6月14日
    082
  • Redis处理高并发 加锁

    在程序开发过程中,通常会遇到需要独占式的访问一些资源的情形,比如商品秒杀时扣减库存。这时就需要对资源加锁。实现锁的方式有很多,比如数据库锁、文件锁等等。本文简单介绍PHP中使用re…

    Linux 2023年5月28日
    085
  • Mac Mini 安装Ubuntu20.04 KVM

    在一台 Mac Mini mid 2011上安装Ubuntu20.04并配置KVM环境, 过程也适用于其他版本的Mac主机. I5 2415, 内存8G*2, 硬盘 SSD 500…

    Linux 2023年5月27日
    0100
  • 清空Redis集群所有节点的数据工具

    FLUSHALL和FLUSHDB是单机命令,所以清空集群需要在所有Master节点上均执行一次。下载:https://github.com/eyjian/redis-tools/b…

    Linux 2023年5月28日
    0103
  • YUM简单入门

    1.制作YUM源先关闭相关安全设置,安装vsftpd 挂载到共享目录 对新增的安装包目录生成包的元数据(把包中依赖关系统计) 配置yum路径特性 生成yum 2.YUM命令简单使用…

    Linux 2023年6月7日
    097
  • 用 shell 脚本做 tcp 协议模拟

    问题背景 公司有一套消息推送系统(简称GCM),由于人事变动接手了其中的客户端部分。看了一下文档,仅通讯协议部分有几页简单的说明,代码呢又多又乱,一时理不出一个头绪。由于消息是从后…

    Linux 2023年6月6日
    0139
  • 理论知识

    多线程的实现方式:1.继承Thread类;2.实现runnable接口;3.实现callable接口通过futrueTask包装器来创建Thread线程; 是继承Thread类号还…

    Linux 2023年6月7日
    0112
  • 【Leetcode】300. 最长递增子序列

    给你一个整数数组 nums,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组…

    Linux 2023年6月6日
    0121
  • 分享四款H5怀旧小游戏魔塔+伏魔记+三国霸业+寻仙纪

    前言 还记得中学时,用步步高学习机玩的魔塔、伏魔记、三国霸业吗?还记得3g网时,用Nokia或是杂牌机在3GQQ家园里玩的精武堂、纵横四海吗?没错,说的就是你! 那时的游戏很粗糙,…

    Linux 2023年6月7日
    0144
  • LeetCode-125. 验证回文串

    题目来源 题目详情 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明: 本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: &#8…

    Linux 2023年6月7日
    085
  • jmeter学习记录–04–Beanshell

    一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类…

    Linux 2023年5月28日
    0109
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球