Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 751c9af

Browse filesBrowse files
authored
Merge pull request #9124 from anntzer/savefig
MNT: Use savefig instead of print_figure in GUIs when save button is pressed
2 parents 83fa71f + 9bc08c2 commit 751c9af
Copy full SHA for 751c9af

File tree

Expand file treeCollapse file tree

11 files changed

+49
-60
lines changed
Filter options
Expand file treeCollapse file tree

11 files changed

+49
-60
lines changed

‎examples/api/agg_oo_sgskip.py

Copy file name to clipboardExpand all lines: examples/api/agg_oo_sgskip.py
+7-4Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,21 @@
33
The object-oriented interface
44
=============================
55
6-
A pure OO (look Ma, no pylab!) example using the agg backend
7-
6+
A pure OO (look Ma, no pyplot!) example using the agg backend.
87
"""
8+
99
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
1010
from matplotlib.figure import Figure
1111

1212
fig = Figure()
13-
canvas = FigureCanvas(fig)
13+
# A canvas must be manually attached to the figure (pyplot would automatically
14+
# do it). This is done by instanciating the canvas with the figure as
15+
# argument.
16+
FigureCanvas(fig)
1417
ax = fig.add_subplot(111)
1518
ax.plot([1, 2, 3])
1619
ax.set_title('hi mom')
1720
ax.grid(True)
1821
ax.set_xlabel('time')
1922
ax.set_ylabel('volts')
20-
canvas.print_figure('test')
23+
fig.savefig('test')

‎examples/misc/hyperlinks_sgskip.py

Copy file name to clipboardExpand all lines: examples/misc/hyperlinks_sgskip.py
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
f = plt.figure()
2121
s = plt.scatter([1, 2, 3], [4, 5, 6])
2222
s.set_urls(['http://www.bbc.co.uk/news', 'http://www.google.com', None])
23-
f.canvas.print_figure('scatter.svg')
23+
f.savefig('scatter.svg')
2424

2525
###############################################################################
2626

@@ -36,4 +36,4 @@
3636
origin='lower', extent=[-3, 3, -3, 3])
3737

3838
im.set_url('http://www.google.com')
39-
f.canvas.print_figure('image.svg')
39+
f.savefig('image.svg')

‎examples/user_interfaces/embedding_webagg_sgskip.py

Copy file name to clipboardExpand all lines: examples/user_interfaces/embedding_webagg_sgskip.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ def get(self, fmt):
153153
self.set_header('Content-Type', mimetypes.get(fmt, 'binary'))
154154

155155
buff = io.BytesIO()
156-
manager.canvas.print_figure(buff, format=fmt)
156+
manager.canvas.figure.savefig(buff, format=fmt)
157157
self.write(buff.getvalue())
158158

159159
class WebSocket(tornado.websocket.WebSocketHandler):

‎lib/matplotlib/backend_bases.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backend_bases.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2303,7 +2303,7 @@ def get_default_filename(self):
23032303
default_filetype = self.get_default_filetype()
23042304
default_filename = default_basename + '.' + default_filetype
23052305

2306-
save_dir = os.path.expanduser(rcParams.get('savefig.directory', ''))
2306+
save_dir = os.path.expanduser(rcParams['savefig.directory'])
23072307

23082308
# ensure non-existing filename in save dir
23092309
i = 1

‎lib/matplotlib/backends/backend_gtk.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_gtk.py
+6-9Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,7 @@ def get_filechooser(self):
707707
fc = FileChooserDialog(
708708
title='Save the figure',
709709
parent=self.win,
710-
path=os.path.expanduser(rcParams.get('savefig.directory', '')),
710+
path=os.path.expanduser(rcParams['savefig.directory']),
711711
filetypes=self.canvas.get_supported_filetypes(),
712712
default_filetype=self.canvas.get_default_filetype())
713713
fc.set_current_name(self.canvas.get_default_filename())
@@ -718,15 +718,12 @@ def save_figure(self, *args):
718718
fname, format = chooser.get_filename_from_user()
719719
chooser.destroy()
720720
if fname:
721-
startpath = os.path.expanduser(rcParams.get('savefig.directory', ''))
722-
if startpath == '':
723-
# explicitly missing key or empty str signals to use cwd
724-
rcParams['savefig.directory'] = startpath
725-
else:
726-
# save dir for next time
727-
rcParams['savefig.directory'] = os.path.dirname(six.text_type(fname))
721+
# Save dir for next time, unless empty str (i.e., use cwd).
722+
if startpath != "":
723+
rcParams['savefig.directory'] = (
724+
os.path.dirname(six.text_type(fname)))
728725
try:
729-
self.canvas.print_figure(fname, format=format)
726+
self.canvas.figure.savefig(fname, format=format)
730727
except Exception as e:
731728
error_msg_gtk(str(e), parent=self)
732729

‎lib/matplotlib/backends/backend_gtk3.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_gtk3.py
+9-12Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ def get_filechooser(self):
561561
fc = FileChooserDialog(
562562
title='Save the figure',
563563
parent=self.win,
564-
path=os.path.expanduser(rcParams.get('savefig.directory', '')),
564+
path=os.path.expanduser(rcParams['savefig.directory']),
565565
filetypes=self.canvas.get_supported_filetypes(),
566566
default_filetype=self.canvas.get_default_filetype())
567567
fc.set_current_name(self.canvas.get_default_filename())
@@ -572,15 +572,13 @@ def save_figure(self, *args):
572572
fname, format = chooser.get_filename_from_user()
573573
chooser.destroy()
574574
if fname:
575-
startpath = os.path.expanduser(rcParams.get('savefig.directory', ''))
576-
if startpath == '':
577-
# explicitly missing key or empty str signals to use cwd
578-
rcParams['savefig.directory'] = startpath
579-
else:
580-
# save dir for next time
581-
rcParams['savefig.directory'] = os.path.dirname(six.text_type(fname))
575+
startpath = os.path.expanduser(rcParams['savefig.directory'])
576+
# Save dir for next time, unless empty str (i.e., use cwd).
577+
if startpath != "":
578+
rcParams['savefig.directory'] = (
579+
os.path.dirname(six.text_type(fname)))
582580
try:
583-
self.canvas.print_figure(fname, format=format)
581+
self.canvas.figure.savefig(fname, format=format)
584582
except Exception as e:
585583
error_msg_gtk(str(e), parent=self)
586584

@@ -814,7 +812,7 @@ def get_filechooser(self):
814812
fc = FileChooserDialog(
815813
title='Save the figure',
816814
parent=self.figure.canvas.manager.window,
817-
path=os.path.expanduser(rcParams.get('savefig.directory', '')),
815+
path=os.path.expanduser(rcParams['savefig.directory']),
818816
filetypes=self.figure.canvas.get_supported_filetypes(),
819817
default_filetype=self.figure.canvas.get_default_filetype())
820818
fc.set_current_name(self.figure.canvas.get_default_filename())
@@ -825,8 +823,7 @@ def trigger(self, *args, **kwargs):
825823
fname, format_ = chooser.get_filename_from_user()
826824
chooser.destroy()
827825
if fname:
828-
startpath = os.path.expanduser(
829-
rcParams.get('savefig.directory', ''))
826+
startpath = os.path.expanduser(rcParams['savefig.directory'])
830827
if startpath == '':
831828
# explicitly missing key or empty str signals to use cwd
832829
rcParams['savefig.directory'] = startpath

‎lib/matplotlib/backends/backend_macosx.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_macosx.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ def save_figure(self, *args):
192192
self.canvas.get_default_filename())
193193
if filename is None: # Cancel
194194
return
195-
self.canvas.print_figure(filename)
195+
self.canvas.figure.savefig(filename)
196196

197197
def prepare_configure_subplots(self):
198198
toolfig = Figure(figsize=(6,3))

‎lib/matplotlib/backends/backend_qt5.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_qt5.py
+7-10Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -725,8 +725,8 @@ def save_figure(self, *args):
725725
sorted_filetypes = sorted(six.iteritems(filetypes))
726726
default_filetype = self.canvas.get_default_filetype()
727727

728-
startpath = matplotlib.rcParams.get('savefig.directory', '')
729-
startpath = os.path.expanduser(startpath)
728+
startpath = os.path.expanduser(
729+
matplotlib.rcParams['savefig.directory'])
730730
start = os.path.join(startpath, self.canvas.get_default_filename())
731731
filters = []
732732
selectedFilter = None
@@ -742,15 +742,12 @@ def save_figure(self, *args):
742742
"Choose a filename to save to",
743743
start, filters, selectedFilter)
744744
if fname:
745-
if startpath == '':
746-
# explicitly missing key or empty str signals to use cwd
747-
matplotlib.rcParams['savefig.directory'] = startpath
748-
else:
749-
# save dir for next time
750-
savefig_dir = os.path.dirname(six.text_type(fname))
751-
matplotlib.rcParams['savefig.directory'] = savefig_dir
745+
# Save dir for next time, unless empty str (i.e., use cwd).
746+
if startpath != "":
747+
matplotlib.rcParams['savefig.directory'] = (
748+
os.path.dirname(six.text_type(fname)))
752749
try:
753-
self.canvas.print_figure(six.text_type(fname))
750+
self.canvas.figure.savefig(six.text_type(fname))
754751
except Exception as e:
755752
QtWidgets.QMessageBox.critical(
756753
self, "Error saving file", six.text_type(e),

‎lib/matplotlib/backends/backend_tkagg.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_tkagg.py
+13-18Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -768,8 +768,7 @@ def save_figure(self, *args):
768768
# work - JDH!
769769
#defaultextension = self.canvas.get_default_filetype()
770770
defaultextension = ''
771-
initialdir = rcParams.get('savefig.directory', '')
772-
initialdir = os.path.expanduser(initialdir)
771+
initialdir = os.path.expanduser(rcParams['savefig.directory'])
773772
initialfile = self.canvas.get_default_filename()
774773
fname = tkinter_tkfiledialog.asksaveasfilename(
775774
master=self.window,
@@ -780,20 +779,17 @@ def save_figure(self, *args):
780779
initialfile=initialfile,
781780
)
782781

783-
if fname == "" or fname == ():
782+
if fname in ["", ()]:
784783
return
785-
else:
786-
if initialdir == '':
787-
# explicitly missing key or empty str signals to use cwd
788-
rcParams['savefig.directory'] = initialdir
789-
else:
790-
# save dir for next time
791-
rcParams['savefig.directory'] = os.path.dirname(six.text_type(fname))
792-
try:
793-
# This method will handle the delegation to the correct type
794-
self.canvas.print_figure(fname)
795-
except Exception as e:
796-
tkinter_messagebox.showerror("Error saving file", str(e))
784+
# Save dir for next time, unless empty str (i.e., use cwd).
785+
if initialdir != "":
786+
rcParams['savefig.directory'] = (
787+
os.path.dirname(six.text_type(fname)))
788+
try:
789+
# This method will handle the delegation to the correct type
790+
self.canvas.figure.savefig(fname)
791+
except Exception as e:
792+
tkinter_messagebox.showerror("Error saving file", str(e))
797793

798794
def set_active(self, ind):
799795
self._ind = ind
@@ -984,8 +980,7 @@ def trigger(self, *args):
984980
# work - JDH!
985981
# defaultextension = self.figure.canvas.get_default_filetype()
986982
defaultextension = ''
987-
initialdir = rcParams.get('savefig.directory', '')
988-
initialdir = os.path.expanduser(initialdir)
983+
initialdir = os.path.expanduser(rcParams['savefig.directory'])
989984
initialfile = self.figure.canvas.get_default_filename()
990985
fname = tkinter_tkfiledialog.asksaveasfilename(
991986
master=self.figure.canvas.manager.window,
@@ -1008,7 +1003,7 @@ def trigger(self, *args):
10081003
six.text_type(fname))
10091004
try:
10101005
# This method will handle the delegation to the correct type
1011-
self.figure.canvas.print_figure(fname)
1006+
self.figure.savefig(fname)
10121007
except Exception as e:
10131008
tkinter_messagebox.showerror("Error saving file", str(e))
10141009

‎lib/matplotlib/backends/backend_webagg.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_webagg.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def get(self, fignum, fmt):
151151
self.set_header('Content-Type', mimetypes.get(fmt, 'binary'))
152152

153153
buff = six.BytesIO()
154-
manager.canvas.print_figure(buff, format=fmt)
154+
manager.canvas.figure.savefig(buff, format=fmt)
155155
self.write(buff.getvalue())
156156

157157
class WebSocket(tornado.websocket.WebSocketHandler):

‎lib/matplotlib/backends/backend_wx.py

Copy file name to clipboardExpand all lines: lib/matplotlib/backends/backend_wx.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1587,7 +1587,7 @@ def save_figure(self, *args):
15871587
(ext, format, ext), stacklevel=0)
15881588
format = ext
15891589
try:
1590-
self.canvas.print_figure(
1590+
self.canvas.figure.savefig(
15911591
os.path.join(dirname, filename), format=format)
15921592
except Exception as e:
15931593
error_msg_wx(str(e))

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.