Removing white space in .emf plots

15 次查看(过去 30 天)
I have a MATLAB program that generates data and plots the data. When I create the Figure, I use the following command:
figure100 = figure('Position',[1 1 1100 500],'Color',[1 1 1]);
Afterward, I use the
SAVEAS(figure100,FILENAME,'emf')
to save the figure to .emf file.
When I drag and drop the .emf file into PowerPoint I notice a large white space to the left and right of the figure. In order to remove the white space I typically CROP the figure in PowerPoint.
My question is how can I reduce the WHITE space in MATLAB so that I don't need to CROP in PowerPoint?

采纳的回答

Alex Knight
Alex Knight 2011-1-27
You can simply 'ungroup' the figure when you get it into PowerPoint and delete the unwanted white box. Then you can 'regroup' the remaining objects.
Alternatively - set the background to be transparent. Then you don't care (you can definitely do this with the 'copy figure' method.
  2 个评论
million
million 2011-1-28
Thank you for your input. However, 'CROP' is much more easier than 'UNGROUP' & 'GROUP'.
I am no sure how to make the background transparent.
Alex Knight
Alex Knight 2011-2-24
Simple!
In the figure window:
Edit>Copy Options>
Figure Background Colour>Transparent background
is one way of doing it.

请先登录,再进行评论。

更多回答(2 个)

Walter Roberson
Walter Roberson 2011-1-26
A lot of people have trouble saving figures nicely; it has become a FAQ . And the main answer is to use the Matlab File Exchange contribution export_fig
  1 个评论
million
million 2011-1-28
Thank you for your response.
I downloaded export_fig. The issue I have is with the resolution of the final product. File format .png does not look as professional as .emf.
Please find a test program I used below:
figure100 = figure('Position',[1 1 1100 500],'Color',[1 1 1]);
plot(1:10,sin(1:10));
grid;
saveas(figure100,'figure100','emf');
export_fig figure100.png -m2.5

请先登录,再进行评论。


Fangjun Jiang
Fangjun Jiang 2011-1-27
You could adjust the position of the axes in the figure to make it looks better for you.
figure100 = figure('Position',[1 1 1100 500],'Color',[1 1 1]);
plot(1:10,sin(1:10));grid;
AxesHandle=findobj(figure100,'Type','axes');
set(AxesHandle,'Position',[0.05,0.1,0.9,0.85]);
saveas(figure100,'figure100','emf');
The position of the axes is in the format of [x,y,width,height].
You could manually adjust it to the position you like and then find out the exact number.
In the figure, click menu 'Edit'-> 'Axes Properties ...', then click the axes and adjust the position of left, right, top and bottom side
In the "Property Editor -Axes" panel, click the "More Properties ..." button, and find the "Position" value
  2 个评论
million
million 2011-1-28
This is a good idea. However, I am using subplot and not plot. How do you make it work for subplot?
Here is an example of my code:
clear all;
figure100 = figure('Position',[1 1 1100 500],'Color',[1 1 1]);
subplot(3,1,1);
plot(1:10,sin(1:10),'r-');
grid;
subplot(3,1,2);
plot(1:10,cos(1:10),'g-');
grid;
subplot(3,1,3);
plot(1:10,tan(1:10),'b-');
grid;
AxesHandle=findobj(figure100,'Type','axes');
set(AxesHandle,'OuterPosition',[0,0,1,1]);
saveas(figure100,'figure101','emf');
Fangjun Jiang
Fangjun Jiang 2011-1-31
In your case, AxleHandle returns three handles, which are for three of your sub-plots. You could adjust each of them.

请先登录,再进行评论。

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by