How to: Copy/Print (sub)plots to clipboard and pdf

8 views (last 30 days)
Hi
I would like to copy a (sub)plot to the clipboard and a pdf file
with and w/o the gui interface.
How can I do that?
thank you
  1 Comment
Jan
Jan on 21 Mar 2013
What exactly is "the GUI interface"? Does it inlcude the window borders?

Sign in to comment.

Answers (3)

Walter Roberson
Walter Roberson on 5 Feb 2013

Hello kity
Hello kity on 5 Feb 2013
Edited: Hello kity on 5 Feb 2013
I allready found that one. But that is not really what I want. I have 3 subbplots and some edit/statit fields around it. Now it copys all of them at once then it is pretty much minimized when you copy paste it.
I d rather have the option to select the specific subpplot and edit/static fields on the figure.

Ram
Ram on 20 Mar 2013
Try this. While you are generating the subplot, create a uicontextmenu for each axes that allows a right mouse click and choose to copy. Then, write the callback to copy using "print -dmeta" command.
% Commands to create uicontextmenus
for i = 1:length(justAxes)
hcmenu = uicontextmenu;
item = uimenu(hcmenu,'Label','Copy','Callback', @copy_call});
set(justAxes(i),'uicontextmenu',hcmenu);
end
% Now the copy_call function has to create a figure with that plot copied on it. Then upe "print -dmeta" command.
function copy_call(varargin)
currAxes = get(get(get(varargin{1},'parent'),'parent'),'currentAxes');
newFig = figure('visible','off');
newHandle = copyobj(currAxes,newFig);
print(newFig,'-dmeta');
delete(newFig);
% Right mouse click on individual plots and choose the "copy" option. The "print -dmeta" command puts the plot in the clipboard. Use the paste command on to MS Word or other files.
  1 Comment
AJ
AJ on 4 Dec 2018
I had mixed luck with this solution. I had to do a few mods to get it to work well.
This is intended to copy an axis from a GUI figure, so this is a callback function for a pushbutton to copy the axis data to the clipboard.
% --- Executes on button press in PB_Copy_to_clipboard.
function PB_Copy_to_clipboard_Callback(hObject, eventdata, handles)
% hObject handle to PB_Copy_to_clipboard (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
hObject.String = 'Copying...'; % Let user know copy is proceding
hObject.BackgroundColor = 'y';
drawnow
newFig = figure('visible','off'); % Create new figure
%newFig.Position(3:4) = [1100 720]; % Make figure bigger
ax1 = subplot(1,1,1); % Create new axis (temporary, for sizing)
ax_new = copyobj(handles.axes1,newFig);
set(ax_new,'units','normalized','position',get(ax1,'position'));
delete(ax1);
print(newFig,'-dmeta'); % Copy to clipboard
delete(newFig);
hObject.String = 'Copy to Clipboard'; % Restore original pushbutton text
hObject.BackgroundColor = 0.94*[1 1 1];

Sign in to comment.

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!