@@ -1040,8 +1040,10 @@ def savefig(self, *args, **kwargs):
1040
1040
backend. Most backends support png, pdf, ps, eps and svg.
1041
1041
1042
1042
*transparent*:
1043
- If *True*, the figure patch and axes patches will all be
1044
- transparent. This is useful, for example, for displaying
1043
+ If *True*, the axes patches will all be transparent; the
1044
+ figure patch will also be transparent unless facecolor
1045
+ and/or edgecolor are specified via kwargs.
1046
+ This is useful, for example, for displaying
1045
1047
a plot on top of a colored background on a web page. The
1046
1048
transparency of these patches will be restored to their
1047
1049
original values upon exit of this function.
@@ -1061,9 +1063,7 @@ def savefig(self, *args, **kwargs):
1061
1063
1062
1064
"""
1063
1065
1064
- for key in ('dpi' , 'facecolor' , 'edgecolor' ):
1065
- if key not in kwargs :
1066
- kwargs [key ] = rcParams ['savefig.%s' % key ]
1066
+ kwargs .setdefault ('dpi' , rcParams ['savefig.dpi' ])
1067
1067
1068
1068
extension = rcParams ['savefig.extension' ]
1069
1069
if args and is_string_like (args [0 ]) and '.' not in args [0 ] and extension != 'auto' :
@@ -1072,20 +1072,25 @@ def savefig(self, *args, **kwargs):
1072
1072
1073
1073
transparent = kwargs .pop ('transparent' , False )
1074
1074
if transparent :
1075
- original_figure_alpha = self . patch . get_alpha ( )
1076
- self . patch . set_alpha ( 0.0 )
1077
- original_axes_alpha = []
1075
+ kwargs . setdefault ( 'facecolor' , 'none' )
1076
+ kwargs . setdefault ( 'edgecolor' , 'none' )
1077
+ original_axes_colors = []
1078
1078
for ax in self .axes :
1079
1079
patch = ax .patch
1080
- original_axes_alpha .append (patch .get_alpha ())
1081
- patch .set_alpha (0.0 )
1080
+ original_axes_colors .append ((patch .get_facecolor (),
1081
+ patch .get_edgecolor ()))
1082
+ patch .set_facecolor ('none' )
1083
+ patch .set_edgecolor ('none' )
1084
+ else :
1085
+ kwargs .setdefault ('facecolor' , rcParams ['savefig.facecolor' ])
1086
+ kwargs .setdefault ('edgecolor' , rcParams ['savefig.edgecolor' ])
1082
1087
1083
1088
self .canvas .print_figure (* args , ** kwargs )
1084
1089
1085
1090
if transparent :
1086
- self .patch . set_alpha ( original_figure_alpha )
1087
- for ax , alpha in zip ( self . axes , original_axes_alpha ):
1088
- ax .patch .set_alpha ( alpha )
1091
+ for ax , cc in zip ( self .axes , original_axes_colors ):
1092
+ ax . patch . set_facecolor ( cc [ 0 ])
1093
+ ax .patch .set_edgecolor ( cc [ 1 ] )
1089
1094
1090
1095
@docstring .dedent_interpd
1091
1096
def colorbar (self , mappable , cax = None , ax = None , ** kw ):
0 commit comments