【问题标题】:matplotlib savefig does not output a filematplotlib savefig 不输出文件
【发布时间】:2017-08-30 20:08:56
【问题描述】:

我已经从两个不同的数据框中分别加载了一列,并将它们绘制在折线图上。该图会在我的屏幕上弹出,但我的 plt.savefig 命令不起作用,因为没有保存文件。

import matplotlib.pyplot as plt
import plotly.plotly as py
import pandas as pd
import plotly.graph_objs as go

# read in LEC
LLEC = pd.read_csv('LLEC_1.csv').transpose()
RLEC = pd.read_csv('RLEC_2.csv').transpose()

#read in DGCA3
LDGCA3=pd.read_csv('LDGCA3_13.csv').transpose()
RDGCA3 = pd.read_csv('RDGCA3_14.csv').transpose()

def plot_betas_left(betaNum):
    betaNum = int(betaNum)

    #plot betas for both ROIs. start with LEC
    ax = LLEC[betaNum].plot()
    # add DGCA3
    LDGCA3[betaNum].plot(ax=ax)
    # label axes
    ax.set_xlabel("precise beta number (0 is first)")
    ax.set_ylabel("beta coefficient value")
    # inset legend
    ax.legend(['LEC', 'DGCA3'])
    plt.savefig('Subj%s_left_LEC_DGCA3.png' % betaNum+1)

plot_betas(3)

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    试试这个:

    >>> "%s" % 12+1
    Traceback (most recent call last):
      File "<string>", line 301, in runcode
      File "<interactive input>", line 1, in <module>
    TypeError: Can't convert 'int' object to str implicitly
    

    如您所见,% 运算符和 + 运算符之间存在优先级问题:

    plt.savefig('Subj%s_left_LEC_DGCA3.png' % betaNum+1)
    

    'Subj%s_left_LEC_DGCA3.png' % betaNum 首先计算为一个字符串,然后 python 尝试将1 添加到该字符串中,这解释了错误(您没有发布任何错误,但它不保存的事实表明了这一点)

    我愿意:

    plt.savefig('Subj%s_left_LEC_DGCA3.png' % (betaNum+1))
    

    甚至更好:

    plt.savefig('Subj{}_left_LEC_DGCA3.png'.format(betaNum+1))
    

    也就是说,拥有一个可以查看代码引发的异常的控制台会有很大帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-08
      • 2012-02-19
      • 1970-01-01
      • 2013-12-08
      • 2022-07-07
      • 2018-01-12
      • 1970-01-01
      相关资源
      最近更新 更多