copygraphics
说明
copygraphics(
将 obj
)obj
指定的图形对象的内容复制到系统剪贴板。图形对象可以是任何类型的坐标区、图窗、独立可视化、分块图布局或图窗内的容器。剪贴板内容可用于粘贴到其他应用程序和文档中。
copygraphics(
指定用于将内容复制到剪贴板的其他选项。例如,obj
,Name,Value
)copygraphics(gca,'Resolution',300)
将当前坐标区的内容作为 300-DPI 图像复制到剪贴板。
示例
复制坐标区
指定图像分辨率
显示一个图像并获取当前坐标区。然后将该坐标区的内容复制为 300-DPI 图像。
I = imread('peppers.png'); imshow(I) ax = gca; copygraphics(ax,'Resolution',300)
复制图窗
显示一个具有超出坐标区边界的注释的绘图。然后复制图窗中的内容。
plot(1:10) annotation('textarrow',[0.06 0.5],[0.73 0.5],'String','y = x ') f = gcf; copygraphics(f)
将图复制为向量图
显示一个条形图并获取当前坐标区。然后将坐标区的内容复制为向量图。
bar([10 22 31 43]) ax = gca; copygraphics(ax,'ContentType','vector')
复制分块图布局
在分块图布局中显示两个绘图。然后通过将 TiledChartLayout
对象传递给 copygraphics
函数,将这两个绘图复制到剪贴板。
t = tiledlayout(2,1); nexttile plot([1 2 3]) nexttile plot([3 2 1]) copygraphics(t)
如果您只想复制其中一个绘图,请在调用 nexttile
函数时包含坐标区返回参量。然后将坐标区传递给 copygraphics
函数。
复制带透明背景的热图
显示一个热图。然后将该图复制为向量图,并指定透明背景。
h = heatmap(rand(10,10)); copygraphics(h,'ContentType','vector','BackgroundColor','none')
创建用于复制绘图的 App
创建一个名为 copyapp.m
的程序文件,它显示一个绘图和一个用于将坐标区内容复制到剪贴板的按钮。在该按钮的回调函数中,调用 copygraphics
函数。
function copyapp f = uifigure; ax = uiaxes(f,'Position',[25 25 400 375]); plot(ax,[0 0.3 0.1 0.6 0.4 1]) b = uibutton(f,'Position',[435 200 90 30],'Text','Copy Plot'); b.ButtonPushedFcn = @buttoncallback; function buttoncallback(~,~) copygraphics(ax) end end
通过调用 copyapp
函数来运行该 App。当您点击复制图按钮时,坐标区内容将复制到剪贴板。系统不会复制坐标区周围的区域,包括按钮。
copyapp
输入参数
obj
— 图形对象
坐标区 | 图窗 | 独立可视化 | 分块图布局 | ...
图形对象,指定为以下对象之一:
任何类型的坐标区:
Axes
、PolarAxes
或GeographicAxes
对象。独立可视化,如
heatmap
图。使用
tiledlayout
函数创建的分块图布局。图窗中的容器:
Panel
、Tab
或ButtonGroup
对象。
捕获区域
copygraphics
捕获您指定的对象的内容。它不捕获 UI 组件,如按钮或滑块。
它也不捕获相邻的容器或子容器。例如,假设有一个包含线图的图窗以及一个包含热图的相邻面板:
f = figure; ax = axes(f,'Position',[0.1 0.1 0.4 0.8]); plot(ax,[0 1]) p = uipanel(f,'Position',[0.55 0.1 0.4 0.8]); heatmap(p,rand(10,5)) copygraphics(f) copygraphics(p)
在前面的代码中,第一个 copygraphics
命令复制的是线图,但没有复制热图。第二个 copygraphics
命令复制的是热图,但没有复制线图。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: copygraphics(gca,'Resolution',300)
将当前坐标区的内容复制为 300-DPI 图像。
ContentType
— 内容的类型
'auto'
(默认) | 'vector'
| 'image'
要复制的内容的类型,指定为以下选项之一:
'auto'
- MATLAB® 控制内容是向量图还是图像。'vector'
- 将内容复制为向量图,可以缩放到任何大小。'image'
- 将内容复制为光栅化图像。
注意
如果指定 'vector'
选项,某些可视化效果可能会包含杂散线条或其他伪影。
Resolution
— 分辨率 (DPI)
150
(默认) | 整数
分辨率,单位为每英寸点数 (DPI),指定为大于或等于 1
的整数。
当 ContentType
是 'vector'
时,指定分辨率不起作用。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
BackgroundColor
— 背景色
[1 1 1]
(默认) | 'current'
| 'none'
| RGB 三元组 | 'r'
| 'g'
| 'b'
| ...
背景颜色,指定为 'current'
、'none'
、RGB 三元组、十六进制颜色代码或颜色名称。背景颜色控制坐标区或图周围边距的颜色。
值
'current'
将背景颜色设置为父容器的颜色。值
'none'
将背景颜色设置为透明或白色,具体取决于ContentType
的值:当
ContentType='vector'
时,背景颜色为透明。当
ContentType='image'
时,背景颜色为白色。当
ContentType='auto'
时,MATLAB 根据它用于确定要复制的内容类型的启发式方法设置背景颜色。
或者,指定自定义颜色或指定的颜色。
自定义颜色和指定的颜色
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
Colorspace
— 颜色空间
'rgb'
(默认) | 'gray'
已保存图形的颜色空间,指定为 'rgb'
或 'gray'
。
'rgb'
- 复制真彩色 RGB 内容。'gray'
- 将内容转换为灰度。
局限性
MATLAB Online™ 或 MATLAB Web App Server™ 上托管的 Web App 不支持 copygraphics
函数。
替代功能
将鼠标悬停在坐标区工具栏中的导出按钮 上会显示下拉菜单,其中包含用于导出内容的选项:
:将内容保存为一个精确裁剪的图像或 PDF。
:将内容复制为图像。
:将内容复制为向量图。
版本历史记录
在 R2020a 中推出
另请参阅
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)