How to name a figure following its histogram name in matplotlib pyplot using savefig

Viewed 60

I use the script

import matplotlib.pyplot as plt
import numpy as np

import yoda

def readScatter2D(histname, filename):
   histos = yoda.core.read(filename+".yoda")
   x = []
   y = []
   h = histos[histname]
   for b in h:
       x.append(b.x())
       y.append(b.y())
   plt.plot([x],[y], 'bo')
   plt.savefig(str(histname)+".pdf")

readScatter2D("totalCh", "properties_file") 

Compiling this with python3 gives me the error:

Traceback (most recent call last):
  File "enhancement.py", line 18, in <module>
    readScatter2D("totalCh", "properties_file")
  File "enhancement.py", line 16, in readScatter2D
    plt.savefig(str(histname)+".pdf")
  File "/usr/lib64/python2.7/site-packages/matplotlib/pyplot.py", line 697, in savefig
    res = fig.savefig(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/matplotlib/figure.py", line 1573, in savefig
    self.canvas.print_figure(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/matplotlib/backend_bases.py", line 2252, in print_figure
    **kwargs)
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_pdf.py", line 2519, in print_pdf
    file = PdfFile(filename)
  File "/usr/lib64/python2.7/site-packages/matplotlib/backends/backend_pdf.py", line 422, in __init__
    fh = open(filename, 'wb')
IOError: [Errno 2] No such file or directory: 'totalCh.pdf'

I do not understand why matplotlib cannot name the file while saving, by following the histogram names. What is the solution to save the figure following the original histogram? I am using matplotlib version 2.0.2

0 Answers
Related