How to copy a plot to clipboard programmatically
조회 수: 44 (최근 30일)
이전 댓글 표시
I'm trying to copy a plot to clipbard programmatically.
I have an old data plotting tool bult using guide. It has a cmd button to deploy the plots into a window where the plot is formatted perfectly to comply with our journel figure formatting rules. In that deployed window I can click Edit > Copy Figure to copy the figure to clipbard and maintain all the formatting; however, I want to do that programmatically.
According to the documentation, this should work:
print -clipboard -dbitmap
However, that copies the plotting tool gui, not the deployed figure window.
I also tried:
figure(handles.PlotOptions.DeployHandle)
print -clipboard -dbitmap
That didn't change anything. I cant work out how to set focus to the deployed figure window not the plot tool window.
I also tried:
copygraphics(handles.PlotOptions.DeployHandle,'ContentType','vector')
%and
copygraphics(handles.PlotOptions.DeployHandle)
This copied the correct figure window; however, it trimmed out all the borders.
I just want exactly what happens when you create a plot figure and click Edit > Copy Figure
댓글 수: 1
Adam Danz
2021년 5월 21일
I also tried:
copygraphics(handles.PlotOptions.DeployHandle,'ContentType','vector')
This copied the correct figure window; however, it trimmed out all the borders.
What does that mean? Could you should us a screenshot? I use copygraphics all the time to do what you're describing.
채택된 답변
Khaled Hamed
2021년 5월 18일
You have to first copy the plot to an new invesible figure then copy that figure to the clipboard.
Check:
댓글 수: 2
Khaled Hamed
2021년 5월 21일
Try
editmenufcn(newFig,'EditCopyFigure');
or
hgexport(newFig,'-clipboard');
or
print(newFig,'-dmeta');
where newFig is the handle of the new invisible figure
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Printing and Saving에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!