pylab.savefig() and pylab.show() image difference

Posted by Jack1990 on Stack Overflow See other posts from Stack Overflow or by Jack1990
Published on 2013-06-24T20:51:46Z Indexed on 2013/06/24 22:22 UTC
Read the original article Hit count: 281

Filed under:
|
|
|

I'm making an script to automatically create plots from .xvg files, but there's a problem when I'm trying to use pylab's savefig() method. Using pylab.show() and saving from there, everything's fine.

Using pylab.show()

Using pylab.show


Using pylab.savefig()

Using pylab.savefig

def producePlot(timestep, energy_values,type_line = 'r', jump = 1,finish = 100):
    fc = sp.interp1d(timestep[::jump], energy_values[::jump],kind='cubic')
    xnew = numpy.linspace(0, finish, finish*2)
    pylab.plot(xnew, fc(xnew),type_line)
    pylab.xlabel('Time in ps ')
    pylab.ylabel('kJ/mol')
    pylab.xlim(xmin=0, xmax=finish)

def produceSimplePlot(timestep, energy_values,type_line = 'r', jump = 1,finish = 100):
    pylab.plot(timestep, energy_values,type_line)
    pylab.xlabel('Time in ps ')
    pylab.ylabel('kJ/mol')
    pylab.xlim(xmin=0, xmax=finish)

def linearRegression(timestep, energy_values, type_line = 'g'): #, jump = 1,finish = 100):
    from scipy import stats
    import numpy
    #print 'fuck'
    timestep = numpy.asarray(timestep)
    slope, intercept, r_value, p_value, std_err = stats.linregress(timestep,energy_values)
    line = slope*timestep+intercept
    pylab.plot(timestep, line, type_line)

def plottingTime(Title,file_name, timestep, energy_values ,loc, jump , finish):
    pylab.title(Title)
    producePlot(timestep,energy_values, 'b',jump, finish)
    linearRegression(timestep,energy_values)
    import numpy
    Average = numpy.average(energy_values)
    #print Average
    pylab.legend(("Average = %.2f" %(Average),'Linear Reg'),loc)
    #pylab.show()
    pylab.savefig('%s.jpg' %file_name[:-4], bbox_inches= None, pad_inches=0)

#if __name__ == '__main__':
    #plottingTime(Title,timestep1, energy_values, jump  =10, finish = 4800)


def specialCase(Title,file_name, timestep, energy_values,loc, jump, finish):
    #print 'Working here ...?'
    pylab.title(Title)
    producePlot(timestep,energy_values, 'b',jump, finish)
    import numpy
    from pylab import *
    Average = numpy.average(energy_values)
    #print Average
    pylab.legend(("Average = %.2g" %(Average), Title),loc)
    locs,labels = yticks()
    yticks(locs, map(lambda x: "%.3g" % x, locs))
    #pylab.show()
    pylab.savefig('%s.jpg' %file_name[:-4] , bbox_inches= None, pad_inches=0)

Thanks in advance, John

© Stack Overflow or respective owner

Related posts about python

Related posts about numpy