SSH远程连接Linux服务器,无GUI使用matplotlib绘图

问题描述:通过远程访问服务器的方式运行=代码,但是代码有用到matplotlib,使用matplotlib无法在终端上显示绘制好的图形,结果代码报错。

一.警告信息

报错结果

两种解决方法:

1、python文件中:

在 from matplotlib import pylot 之前,添加代码:

如下:

import matplotlib as mpl

mpl.use('Agg')

from matplotlib import pylot

2、在配置文件中:

Linux中,创建文件 ~/.config/matplotlib/matplotlibrc,

(其中,~/.config/matplotlib/是配置文件matplotlibrc的路径)

添加如下一行:

backend : Agg

二、生成图片

支持的格式(注意不支持jpg格式):

eps, pdf, pgf, png, ps, raw, rgba, svg, svgz

在plt.draw() 或者 plt.show() 之后添加生成图片的代码:

plt.show()

plt.savefig('/home/moxiao/code/python/classification_pr.png')

三、在GUI里打开代码生成的图片即可

四、完整示例

picture.py代码:

# -*- coding: utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

plt.figure(1) # 创建图表1

plt.figure(2) # 创建图表2

ax1 = plt.subplot(211) # 在图表2中创建子图1

ax2 = plt.subplot(212) # 在图表2中创建子图2

x = np.linspace(0, 3, 100)

for i in range(5):

    plt.figure(1)  # 选择图表1

    plt.plot(x, np.exp(i*x/3))

    plt.sca(ax1)  # 选择图表2的子图1

    plt.plot(x, np.sin(i*x))

    plt.sca(ax2)  # 选择图表2的子图2

    plt.plot(x, np.cos(i*x))

plt.show()

plt.savefig('table.png')

运行结果: 在本地生成 table.png, 在GUI中打开图片:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容