美文网首页Linux
SSH远程连接Linux服务器,无GUI使用matplotlib

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

作者: 荒野呼啸 | 来源:发表于2019-03-29 16:28 被阅读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中打开图片:

    相关文章

      网友评论

        本文标题:SSH远程连接Linux服务器,无GUI使用matplotlib

        本文链接:https://www.haomeiwen.com/subject/qrzlbqtx.html