目录
前言 SVG格式 通过MATLAB代码保存矢量图 通过figure窗口的工具栏手动保存矢量图前言
一个月没写推送了,忙着搞毕业的东西,
另外也没有怎么学新东西,有的东西学了理解的也不到位,
所以一直就没写。
这两天计算了一些东西(批量的),生成一堆结果图片,然后还要选一些插入到PPT里面。和以往一样,我都是生成jpg、png、bmp等。但是这些位图真是经不起放大,一放大就糊了。
所以就找了一下解决办法,这里简单记一下。
SVG格式
下面这段抄的百度百科的 。
https://baike.baidu.com/item/SVG%E6%A0%BC%E5%BC%8F/3463453?fr=aladdin
SVG是一种图像文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形。它是基于XML(Extensible Markup Language),由World Wide Web Consortium(W3C)联盟进行开发的。严格来说应该是一种开放标准的矢量图形语言,可让你设计激动人心的、高分辨率的Web图形页面。用户可以直接用代码来描绘图像,可以用任何文字处理工具打开SVG图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到HTML中通过浏览器来观看。
通过MATLAB代码保存矢量图
直接上代码吧,实际上还是用 saveas
函数,只不过把保存的格式改成 svg 。这样你要在文章中放入插图时,就插入这个 svg 格式的图片就行。
clc
clear
close all
%% 准备数据
% 自变量
x = -2*pi-0.01 : 0.01 : 2*pi+0.01;
% 两个因变量
y1 = sin(x) .* cos(x) .* x.^2;
y2 = sin(x) .* cos(x) .* x.^3;
%% 可视化
% 创建窗口
h_fig = figure('Name', '我是矢量图');
% 创建坐标系
h_ax = axes('Parent', h_fig, ...
'NextPlot', 'add', ...
'Box', 'on');
% 使窗口的背景色和坐标系的背景色一样(都是白的)
h_fig.Color = h_ax.Color;
% 绘制曲线
plot(x, y1, 'LineWidth', 1.5, 'Color', 'r');
plot(x, y2, 'LineWidth', 2.0, 'Color', 'b');
% 加图例
legend({'y1', 'y2'})
%% 保存成矢量图(SVG、pdf)
% 文章的插图用SVG就好,可以插入到 word和ppt中,可以拿浏览器打开
saveas(h_fig, h_fig.Name, 'svg')
% 也可以保存成pdf
saveas(h_fig, h_fig.Name, 'pdf')
Note:最好先通过窗口的 Position
属性调整一下窗口的宽和高,然后再保存,不然有可能结果图看着有点难受。
通过figure窗口的工具栏手动保存矢量图
文件->导出设置
左侧点击渲染->选择向量格式->应用于图窗
点击上图中的导出,选择保存格式为 svg
注意了哈,就算你选择了向量格式,但是保存的类型为:png、jpg、bmp 这些,你把他们放大后照样糊。你只能选择 svg 或者 pdf,用pdf不方便,一般图片都是拿来放到ppt或者word中的(不知道latex能不能放svg,没用过 )。
还有就是,如果你选择的是位图,然后导出 svg ,你放大了照样糊。
加油