export_fig
==========
A toolbox for exporting figures from MATLAB to standard image and document formats nicely.
### Overview
Exporting a figure from MATLAB the way you want it (hopefully the way it looks on screen), can be a real headache for the unitiated, thanks to all the settings that are required, and also due to some eccentricities (a.k.a. features and bugs) of functions such as `print`. The first goal of export_fig is to make transferring a plot from screen to document, just the way you expect (again, assuming that's as it appears on screen), a doddle.
The second goal is to make the output media suitable for publication, allowing you to publish your results in the full glory that you originally intended. This includes embedding fonts, setting image compression levels (including lossless), anti-aliasing, cropping, setting the colourspace, alpha-blending and getting the right resolution.
Perhaps the best way to demonstrate what export_fig can do is with some examples.
### Examples
**Visual accuracy** - MATLAB's exporting functions, namely `saveas` and `print`, change many visual properties of a figure, such as size, axes limits and ticks, and background colour, in unexpected and unintended ways. Export_fig aims to faithfully reproduce the figure as it appears on screen. For example:
```Matlab
plot(cos(linspace(0, 7, 1000)));
set(gcf, 'Position', [100 100 150 150]);
saveas(gcf, 'test.png');
export_fig test2.png
```
generates the following:
| Figure: | test.png: | test2.png: |
|:-------:|:---------:|:----------:|
|![](https://farm6.staticflickr.com/5616/15589249291_16e485c29a_o_d.png)|![](https://farm4.staticflickr.com/3944/15406302850_4d2e1c7afa_o_d.png)|![](https://farm6.staticflickr.com/5607/15568225476_8ce9bd5f6b_o_d.png)|
Note that the size and background colour of test2.png (the output of export_fig) are the same as those of the on screen figure, in contrast to test.png. Of course, if you want the figure background to be white (or any other colour) in the exported file then you can set this prior to exporting using:
```Matlab
set(gcf, 'Color', 'w');
```
Notice also that export_fig crops and anti-aliases (smooths, for bitmaps only) the output by default. However, these options can be disabled; see the Tips section below for details.
**Resolution** - by default, export_fig exports bitmaps at screen resolution. However, you may wish to save them at a different resolution. You can do this using either of two options: `-m<val>`, where <val> is a positive real number, magnifies the figure by the factor <val> for export, e.g. `-m2` produces an image double the size (in pixels) of the on screen figure; `-r<val>`, again where <val> is a positive real number, specifies the output bitmap to have <val> pixels per inch, the dimensions of the figure (in inches) being those of the on screen figure. For example, using:
```Matlab
export_fig test.png -m2.5
```
on the figure from the example above generates:
![](https://farm4.staticflickr.com/3937/15591910915_dc7040c477_o_d.png)
Sometimes you might have a figure with an image in. For example:
```Matlab
imshow(imread('cameraman.tif'))
hold on
plot(0:255, sin(linspace(0, 10, 256))*127+128);
set(gcf, 'Position', [100 100 150 150]);
```
generates this figure:
![](https://farm4.staticflickr.com/3942/15589249581_ff87a56a3f_o_d.png)
Here the image is displayed in the figure at resolution lower than its native resolution. However, you might want to export the figure at a resolution such that the image is output at its native (i.e. original) size (in pixels). Ordinarily this would require some non-trivial computation to work out what that resolution should be, but export_fig has an option to do this for you. Using:
```Matlab
export_fig test.png -native
```
produces:
![](https://farm6.staticflickr.com/5604/15589249591_da2b2652e4_o_d.png)
with the image being the size (in pixels) of the original image. Note that if you want an image to be a particular size, in pixels, in the output (other than its original size) then you can resize it to this size and use the `-native` option to achieve this.
All resolution options (`-m<val>`, `-q<val>` and `-native`) correctly set the resolution information in PNG and TIFF files, as if the image were the dimensions of the on screen figure.
**Shrinking dots & dashes** - when exporting figures with dashed or dotted lines using either the ZBuffer or OpenGL (default for bitmaps) renderers, the dots and dashes can appear much shorter, even non-existent, in the output file, especially if the lines are thick and/or the resolution is high. For example:
```Matlab
plot(sin(linspace(0, 10, 1000)), 'b:', 'LineWidth', 4);
hold on
plot(cos(linspace(0, 7, 1000)), 'r--', 'LineWidth', 3);
grid on
export_fig test.png
```
generates:
![](https://farm4.staticflickr.com/3956/15592747732_f943d4aa0a_o_d.png)
This problem can be overcome by using the painters renderer. For example:
```Matlab
export_fig test.png -painters
```
used on the same figure generates:
![](https://farm4.staticflickr.com/3945/14971168504_77692f11f5_o_d.png)
Note that not only are the plot lines correct, but the grid lines are too.
**Transparency** - sometimes you might want a figure and axes' backgrounds to be transparent, so that you can see through them to a document (for example a presentation slide, with coloured or textured background) that the exported figure is placed in. To achieve this, first (optionally) set the axes' colour to 'none' prior to exporting, using:
```Matlab
set(gca, 'Color', 'none'); % Sets axes background
```
then use export_fig's `-transparent` option when exporting:
```Matlab
export_fig test.png -transparent
```
This will make the background transparent in PDF, EPS and PNG outputs. You can additionally save fully alpha-blended semi-transparent patch objects to the PNG format. For example:
```Matlab
logo;
alpha(0.5);
```
generates a figure like this:
![](https://farm4.staticflickr.com/3933/15405290339_b08de33528_o_d.png)
If you then export this to PNG using the `-transparent` option you can then put the resulting image into, for example, a presentation slide with fancy, textured background, like so:
![](https://farm6.staticflickr.com/5599/15406302920_59beaefff1_o_d.png)
and the image blends seamlessly with the background.
**Image quality** - when publishing images of your results, you want them to look as good as possible. By default, when outputting to lossy file formats (PDF, EPS and JPEG), export_fig uses a high quality setting, i.e. low compression, for images, so little information is lost. This is in contrast to MATLAB's print and saveas functions, whose default quality settings are poor. For example:
```Matlab
A = im2double(imread('peppers.png'));
B = randn(ceil(size(A, 1)/6), ceil(size(A, 2)/6), 3) * 0.1;
B = cat(3, kron(B(:,:,1), ones(6)), kron(B(:,:,2), ones(6)), kron(B(:,:,3), ones(6)));
B = A + B(1:size(A, 1),1:size(A, 2),:);
imshow(B);
print -dpdf test.pdf
```
generates a PDF file, a sub-window of which looks (when zoomed in) like this:
![](https://farm6.staticflickr.com/5613/15405290309_881b2774d6_o_d.png)
while the command
```Matlab
export_fig test.pdf
```
on the same figure produces this:
![](https://farm4.staticflickr.com/3947/14971168174_687473133f_o_d.png)
While much better, the image still contains some compression artifacts (see the low level noise around the edge of the pepper). You may prefer to export with no artifacts at all, i.e. lossless compression. Alternatively, you might need a smaller file, and be willing to accept more compression. Either way, export_fig has an option that can suit your needs: `-q<val>`, where <val> is a number from 0-100, will set the level of lossy image compression (again in PDF, EPS and JPEG outputs only; other formats are lossless), from high compression (0) to low compression/high quality (100). If you want lossless compression in any of those formats then specify a <val> greater than 100. For examp
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答! matlab算法,工具源码,适合毕业设计、课程设计作业,所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计&课设-用于稀疏表示问题的MATLAB库.zip (1259个子文件)
make.bat 6KB
copy_references.bat 165B
autobuild.bat 42B
openhtml.bat 25B
buildhtml.bat 10B
sksrrcs.bib 92KB
spxblas.c 15KB
gomp.c 15KB
omp.c 14KB
batch_omp_spr.c 12KB
gomp_spr.c 11KB
gomp_mmv.c 11KB
omp_spr.c 10KB
omp_ar.c 10KB
batch_omp.c 8KB
batch_flipped_omp_spr.c 8KB
spxalg.c 7KB
omp_profile.c 4KB
argcheck.c 3KB
spxla.c 3KB
mex_batch_omp.c 3KB
mex_gomp.c 2KB
mex_omp_ar.c 2KB
mex_omp_chol.c 2KB
mex_gomp_mmv.c 2KB
mex_gomp_spr.c 2KB
mex_omp_spr.c 2KB
mex_linsolve.c 2KB
mex_batch_flipped_omp_spr.c 2KB
mex_batch_omp_spr.c 2KB
mex_quickselect.c 1KB
omp_util.c 1KB
mex_test_blas.c 782B
mex_mult_mat_t_mat.c 782B
mex_mult_mat_mat.c 780B
mex_mult_mat_t_vec.c 751B
mex_mult_mat_vec.c 749B
ImageSelection.class 1KB
spx_svd.cpp 33KB
spx_lanbd.cpp 24KB
spx_operator.cpp 23KB
spx_matrix.cpp 14KB
spx_lansvd.cpp 14KB
spx_vector.cpp 10KB
spx_assignment.cpp 9KB
spx_cosamp.cpp 7KB
mex_amub.cpp 5KB
spx_matarr.cpp 5KB
spx_cg.cpp 4KB
mex_lansvd.cpp 4KB
mex_svd_bd_hizsqr.cpp 4KB
mex_bdsqr.cpp 3KB
mex_sparse_demo.cpp 3KB
mex_demo_func_handle.cpp 2KB
spx_qr.cpp 2KB
mex_cosamp.cpp 2KB
mex_cg.cpp 2KB
mex_partial_svd_compose.cpp 2KB
mex_mp.cpp 2KB
mex_sqrt_times.cpp 2KB
spx_matching_pursuit.cpp 1KB
mex_hungarian.cpp 1KB
mex_update_sparse_data.cpp 596B
spx_rand.cpp 493B
spx_pursuit.cpp 69B
custom.css 612B
theme_overrides.css 41B
.gitignore 193B
spxblas.h 9KB
omp.h 6KB
argcheck.h 2KB
omp_profile.h 994B
spxalg.h 754B
spxla.h 504B
spx_vector.hpp 8KB
spx_operator.hpp 8KB
spx_matrix.hpp 7KB
spx_pursuit.hpp 4KB
spx_lanbd.hpp 4KB
spx_assignment.hpp 3KB
spx_lansvd.hpp 3KB
spx_cg.hpp 3KB
spx_matarr.hpp 2KB
spx_svd.hpp 1KB
spx_qr.hpp 597B
spx_rand.hpp 362B
layout.html 1KB
breadcrumbs.html 97B
spx_defaults.ini 367B
ImageSelection.java 1016B
mathconf.js 6KB
disqus.js 509B
LICENSE 1KB
timeit.m 60KB
export_fig.m 54KB
lanczos.m 25KB
mc_omp.m 25KB
print2eps.m 22KB
spaces.m 17KB
subspace.m 14KB
共 1259 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
白话机器学习
- 粉丝: 8908
- 资源: 7681
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- tensorflow-gpu-2.5.0-cp39-cp39-manylinux2010-x86-64.whl
- tensorflow-gpu-2.5.2-cp39-cp39-manylinux2010-x86-64.whl
- 内含方正小标宋简体、仿宋-Gb2312、黑体、楷体、宋体,五个公文常用字体
- 记忆卡牌游戏源码及可运行文件
- 利用wps的js宏编写的一键格式修改辅助工具
- 基于matlab实现训练RBF网络的,但用的算法是梯度下降法,算法仍然是自己写的.rar
- 基于matlab实现小波分析改造后,可以分析脑电数据的程序,出现32个导联每个通道的功率谱.rar
- 基于matlab实现物体的应力和应变DIC-通过识别一系列图像的变形得到物体的应力和应变
- 基于matlab实现文档+程序NSGA-II多目标优化的matlab代码.rar
- 基于matlab实现文档+程序 多目标优化,NSGA2算法实现.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功