MATLAB常用画图命令汇总
自己在建模时常用到的绘图命令,总结的时候也实操了一下,发现了很多通往新世界的大门
我不生产文章,我只是帮助中心的搬运工~
(一)二维图像
1.散点图 scatter()
scatter(x,y,sz,c,mkr.filled,)
sz:指定圆圈的大小(数值或向量。默认:36)
c:指定圆圈的颜色
mkr:标记类型(默认:o)
filled:用于填充标记内部的选项
MarkerEdgeColor:标记轮廓颜色
MarkerFaceColor:标记填充颜色
LineWidth:标记边的宽度
【例1.1.1】
x=linspace(0,3*pi,200); %产生[0,3π]之间的200个均匀的点,语句同x=0:(3*pi-0)/200:3*pi
y=cos(x)+rand(1,200); %产生散落在y=cos(x)上下的点
sz=linspace(1,100,200); %散点大小:从1到100逐渐增大
c=linspace(1,100,200); %散点颜色:RGB1-50的渐变
scatter(x,y,sz,... %修改散点大小
c,... %修改散点颜色
'p',... %修改散点形状(五角星)
'filled',... %填充标记
'LineWidth',2); %修改线条宽度

2.折线图 plot()
plot(X,Y)
X 和 Y 都是向量:长度必须相同,绘制 Y 对 X 的图。
X 和 Y 都是矩阵:大小必须相同,绘制 Y 的列对 X 的列的图。
plot(X,Y,LineSpec)
LineSpec设置线型、标记和颜色。指定为包含符号的字符向量或字符串(用’ ’引用)。符号可以按任意顺序显示。不需要同时指定所有三个特征,例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
|
线型 |
标记 |
颜色 |
|
- 实线(缺省默认) |
o 圆圈 |
y 黄色 |
|
-- 虚线 |
+ 加号 |
m 品红色 |
|
: 点线 |
* 星号 |
c 青蓝色 |
|
-. 点划线 |
. 点 |
r 红色 |
|
x 叉号 |
g 绿色 |
|
|
_ 水平线条 |
b 蓝色(和默认的蓝色不一样) |
|
|
| 垂直线条 |
w 白色(看不见,别用) |
|
|
s或square 方形 |
k 黑色 |
|
|
d或diamond 菱形 |
||
|
^ 上三角 |
||
|
v 下三角 |
||
|
> 右三角 |
||
|
< 左三角 |
||
|
p或pentagram 五角形 |
||
|
h或hexagram 六角形 |
【例1.2.1】
X=1:5;
Y=X.^2;
plot(X,Y,'--*r');

【例1.2.2】
X=[1 2 3 4 5;6 7 8 9 10];
Y=X.^2;
plot(X,Y,'.-m')

plot(X1,Y1,...,Xn,Yn)
绘制多个 X、Y 对组的图,所有线条都使用相同的坐标区。
*注:和使用hold on同时绘制三幅图是一样的效果。
【例1.2.3】
X1=1:5; X2=2:6; X3=3:7;
Y1=X1.^2; Y2=X2.^3; Y3=2*X3;
plot(X1,Y1,X2,Y2,X3,Y3);
%同理:
% plot(X1,Y1);
% hold on
% plot(X2,Y2);
% hold on
% plot(X3,Y3);

plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn)
设置每个线条的线型、标记符号和颜色。可以只对其中的某些Xn,Yn作指定。
plot(Y)
Y 是向量:x 轴的刻度范围是从 1 至 length(Y)。
Y 是矩阵:绘制 Y 中各列对其行号的图。x 轴的刻度范围是从 1 到 Y 的行数。
如果 Y 是复数,则 plot 函数绘制 Y 的虚部对 Y 的实部的图,使得 plot(Y) 等效于 plot(real(Y),imag(Y))。
plot(___,Name,Value)
使用一个或多个Name,Value对组参数指定线条属性。
- LineWidth - 线条宽度(默认:0.5)
- MarkerIndices - 要显示标记的数据点(默认:1:length(Y))
- MarkerEdgeColor - 标记轮廓颜色(默认:’auto’)
- MarkerFaceColor - 标记填充颜色(默认:’none’)
- MarkerSize - 标记大小(默认:6)
【例1.2.4】画图要求:
线型:绿色虚线
线宽:2
标记大小:10
标记轮廓颜色:蓝色
标记填充颜色RGB:0.5,0.5,0.5
在第1,5,10个点处显示标记
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x,y,'--gs',... %线型:虚线 颜色:绿色 标记形状:方形
'LineWidth',2, ... %线条粗细:2
'MarkerSize',10,... %标记大小:10
'MarkerEdgeColor','b',... %标记轮廓颜色:蓝色
'MarkerFaceColor',[0.5,0.5,0.5],... %标记填充RGB(灰色)
'MarkerIndices',[1 5 10]); %标记出现位置:第1,5,10个点处

3.其他图
3.1 圆形(参数方程法)
绘制以点 (4,3) 为中心以 2 为半径的圆。使用 axis equal 可沿每个坐标方向使用相等的数据单位。
【例1.3.1】
r = 2; %半径
xc = 4; %圆心横坐标
yc = 3; %圆心纵坐标
theta = linspace(0,2*pi); %参数θ范围
x = r*cos(theta) + xc; %用参数表示x范围
y = r*sin(theta) + yc; %用参数表示y范围
plot(x,y) %画图
axis equal
3.2 有两个纵坐标轴的图
<方法一> 函数yyaxis
yyaxis left
yyaxis right
【例1.3.3.1】
x=linspace(0,10);
y1=sin(3*x);
yyaxis left
plot(x,y1); %绘制左半边坐标轴的图
ylabel('左半边的图'); %左半边坐标轴标签
y2=sin(3*x).*exp(x./2);
yyaxis right
plot(x,y2); %绘制右半边坐标的图
ylim([-150 150]); %右半边坐标轴的显示范围
ylabel('右半边的图'); %右半边坐标轴标签

<方法二> plotyy
*注:官网由于兼容性问题不推荐这个方法,我的matlab是2018a版,可以用,其他版本酌情使用
3.3 直.方.图【待补充】
3.4 热图
此处贴一个用过的画相关系数热力图的代码,打包成函数了,输入变量名和要画图的矩阵就可以用
函数部分:
function Heatmap(string_name,rho)
%绘制相关系数热力图
%string_name:变量名 rho:相关系数矩阵(可以不是相关系数,但必须是方阵)
xvalues = string_name;
yvalues = string_name;
h = heatmap(xvalues,yvalues,rho, 'FontSize',10, 'FontName','宋体'); %绘图参数
colormap('winter'); %颜色
sortx(h,'y'); %按y的相关系数升序排列(可以换成其他变量,也可以不排序。排序后画出图的相关系数阵对角线不一定都是1)
调用:
%y,x1,x2,...,x6的列向量略,如果求各向量的相关系数的话所有向量长度需相同
string_name={'y','x1','x2','x3','x4','x5','x6'}; %横纵轴各变量名
[rho,pval]=corr([y,x1,x2,x3,x4,x5,x6]); %求各变量的相关系数,rho是相关系数
figure;
Heatmap(string_name,rho); %画相关系数的热力图
有个问题我一直没有解决:数值是Nan时热力图是黑色的,好像可以改成无色,但是我没有实践成功,等待一个会改的好心人来教教我,感激不尽~
热力图颜色设置缺省时默认是蓝白,改成'spring','summer','autumn','winter'都可以,'cool'按理说也可以但是不知道为什么会报错。更多颜色可以看这个帖子:
https://wenku.baidu.com/view/c7b16b1264ec102de2bd960590c69ec3d4bbdb45.html
https://wenku.baidu.com/view/c7b16b1264ec102de2bd960590c69ec3d4bbdb45.html
3.5 Voronoi 图
Voronoi 图由一组由连接两邻点直线的垂直平分线组成的连续多边形组成
voronoi(x,y)
(x,y)是一组点的坐标。
【例1.3.4.1】
rng default; %随机数种子,使用'shuffle','default'或小于 2^32 的非负整数种子
x = rand([1 10]); %生成10个随机数作为点的横坐标
y = rand([1 10]); %生成10个随机数作为点的纵坐标
voronoi(x,y) %绘制voronoi图
axis equal

4.辅助操作
4.1 标题
title('titletext','subtitletext', 'Color','blue');
t.FontSize = 16;
s.FontAngle = 'italic';
titletext:主标题
subtitletext:副标题(可缺省)
color:主副标题颜色(默认:黑色)
t.FontSize:主标题大小
s.FontAngle:副标题字体角度
4.2 坐标轴标签
xlabel('txt')
给x轴添加标签(或替换原x轴标签),y轴标签语句为ylabel(txt)
xlabel({'Population','(in thousands)'});
用{ }添加多行标签
xlabel('Population','FontSize',12,'FontWeight','bold','Color','r');
FontSize:字号
FontWeight:字体粗细
Color:字体颜色
xlabel('-2\pi \leq x \leq 2\pi')
\pi:π
\leq:≤
特殊字符语句汇总:4.6特殊字符LaTeX语句
xlabel('t_{seconds}');
ylabel('e^t');
_后为下标,^后为上标,上下标若为多个字符需用{ }括起来
4.2 坐标轴范围
xlim([xmin xmax]);
xmin:横坐标轴起始值,若为-inf则由matlab自动选择x轴的起始值
xmax:横坐标轴终止值,若为inf则由matlab自动选择x轴的终止值
参考网站:
4.3设置坐标轴显示方式/修改坐标轴刻度坐标
xticks([lab1 lab2 lab3 …]);
x轴坐标在第lab1,lab2,lab3,…个位置显示刻度值(lab1,lab2,lab3,…均为数字,中间用空格分隔)
xticklabels({'labels1','labels2','labels3',…});
x轴在第lab1,lab2,lab3,…个位置的刻度显示为字符(串)labels1,labels2,labels3,…(若刻度为数值也需要用单引号引起来)
【例1.6.1】
x = linspace(0,6*pi);
y = sin(x);
plot(x,y)
xlim([0 6*pi]) %x轴范围:0-6π
xticks(0:pi:6*pi) %在0,π,2π,...,6π处显示刻度值
xticklabels({'0','\pi','2\pi','3\pi','4\pi','5\pi','6\pi'});
%若不写该语句,各刻度显示的是π,2π,...6π的小数值

【例1.6.2】
x=linspace(0,2*pi,200);
y=sin(x);
plot(x,y);
xticks(0:pi:2*pi)
set(gca,'Xticklabel',['0';'1';'2']); %另一种设置刻度的方式
% 或:
% x1=0:2;
% set(gca,'Xticklabel',[x1]);

参考网站:
4.4 向数据点添加文本
text(x,y,'txt','Color','red','FontSize',14)
x,y:要添加文本的位置
txt:文本内容(自行修改)
Color:文本颜色
FontSize:文本大小
4.5 图例
legend('leg1','leg2',…);
leg1,leg2,…是要添加的图例名称(字符串),自动对应plot()中图像的先后顺序。
4.6 特殊字符TeX语句
字体设置
|
修饰符 |
说明 |
示例 |
|
^{ } |
上标 |
'text^{superscript}' |
|
_{ } |
下标 |
'text_{subscript}' |
|
\bf |
粗体 |
'\bf text' |
|
\it |
斜体 |
'\it text' |
|
\sl |
伪斜体(通常与斜体相同) |
'\sl text' |
|
\rm |
常规字体 |
'\rm text' |
|
\fontname{specifier} |
字体名称 - 将 specifier 替换为字体系列的名称。可以将此说明符与其他修饰符结合使用。 |
'\fontname{Courier} text' |
|
\fontsize{specifier} |
字体大小 - 将 specifier 替换为以磅为单位的数值标量值。 |
'\fontsize{15} text' |
|
\color{specifier} |
字体颜色 - 将 specifier 替换为以下颜色之一:red、green、yellow、magenta、blue、black、white、gray、darkGreen、orange 或 lightBlue。 |
'\color{magenta} text' |
|
\color[rgb]{specifier} |
自定义字体颜色 - 将 specifier 替换为三元素 RGB 三元组。 |
'\color[rgb]{0,0.5,0.5} text' |
希腊字母及特殊符号
|
字符序列 |
符号 |
字符序列 |
符号 |
字符序列 |
符号 |
|
\alpha |
α |
\upsilon |
υ |
\sim |
~ |
|
\angle |
∠ |
\phi |
|
\leq |
≤ |
|
\ast |
* |
\chi |
χ |
\infty |
∞ |
|
\beta |
β |
\psi |
ψ |
\clubsuit |
♣ |
|
\gamma |
γ |
\omega |
ω |
\diamondsuit |
♦ |
|
\delta |
δ |
\Gamma |
Γ |
\heartsuit |
♥ |
|
\epsilon |
ϵ |
\Delta |
Δ |
\spadesuit |
♠ |
|
\zeta |
ζ |
\Theta |
Θ |
\leftrightarrow |
↔ |
|
\eta |
η |
\Lambda |
Λ |
\leftarrow |
← |
|
\theta |
θ |
\Xi |
Ξ |
\Leftarrow |
⇐ |
|
\vartheta |
ϑ |
\Pi |
Π |
\uparrow |
↑ |
|
\iota |
ι |
\Sigma |
Σ |
\rightarrow |
→ |
|
\kappa |
κ |
\Upsilon |
ϒ |
\Rightarrow |
⇒ |
|
\lambda |
λ |
\Phi |
Φ |
\downarrow |
↓ |
|
\mu |
µ |
\Psi |
Ψ |
\circ |
º |
|
\nu |
ν |
\Omega |
Ω |
\pm |
± |
|
\xi |
ξ |
\forall |
∀ |
\geq |
≥ |
|
\pi |
π |
\exists |
∃ |
\propto |
∝ |
|
\rho |
ρ |
\ni |
∍ |
\partial |
∂ |
|
\sigma |
σ |
\cong |
≅ |
\bullet |
• |
|
\varsigma |
ς |
\approx |
≈ |
\div |
÷ |
|
\tau |
τ |
\Re |
ℜ |
\neq |
≠ |
|
\equiv |
≡ |
\oplus |
⊕ |
\aleph |
ℵ |
|
\Im |
ℑ |
\cup |
∪ |
\wp |
℘ |
|
\otimes |
⊗ |
\subseteq |
⊆ |
\oslash |
∅ |
|
\cap |
∩ |
\in |
∈ |
\supseteq |
⊇ |
|
\supset |
⊃ |
\lceil |
⌈ |
\subset |
⊂ |
|
\int |
∫ |
\cdot |
· |
\o |
ο |
|
\rfloor |
⌋ |
\neg |
¬ |
\nabla |
∇ |
|
\lfloor |
⌊ |
\times |
x |
\ldots |
... |
|
\perp |
⊥ |
\surd |
√ |
\prime |
´ |
|
\wedge |
∧ |
\varpi |
ϖ |
\0 |
∅ |
|
\rceil |
⌉ |
\rangle |
〉 |
\mid |
| |
|
\vee |
∨ |
\langle |
〈 |
\copyright |
© |
要使用 LaTeX 标记,需将解释器设置为 'latex'。对于行内模式,用单美元符号 ($) 将标记括起来。对于显示模式,用双美元符号 ($$) 将标记括起来。
|
LaTeX 模式 |
示例 |
结果 |
|
行内 |
'$\int_1^{20} x^2 dx$' |
|
|
显示 |
'$$\int_1^{20} x^2 dx$$' |
|
参考网站:向数据点添加文本说明 - MATLAB text - MathWorks 中国
4.7 局部放大
手动方法(代码方法暂时还没尝试,手动法可以保存,效果不错,少量图适用)

4.8 其他
hold on
保留当前坐标区中的绘图,使新添加到坐标区中的绘图不会删除现有绘图。
grid on
显示 gca 命令返回的当前坐标区的主网格线。主网格线从每个刻度线延伸。
参考网站:
(二)三维图像
1 p.l.o.t.3【待补充】
2 s.u.r.f【待补充】
补充:MATLAB默认配色的代码
|
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’ |
苝褐 |
附:一些配色网站,提供16位颜色代码
- Culrs | Culrs gives you a simple smart approach to choose color palettes
https://www.culrs.com/#/ColorSpace - Color Palettes Generator and Color Gradient Tool (mycolor.space)
https://mycolor.space/
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)