Linux

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

2019-03-29  本文已影响0人  荒野呼啸

问题描述:通过远程访问服务器的方式运行=代码,但是代码有用到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中打开图片:

上一篇下一篇

猜你喜欢

热点阅读