Matlab_plot
请注意,本文最近一次更新于:2022-04-07,文章内容可能已经不具有时效性,请谨慎参考
本文最后更新于:2022年4月7日星期四晚上7点14分 +08:00
自2021-11-08推出第一篇文章后承诺的系列文章杳无音讯,疯狂当鸽子🕊,最近开始慢慢摸索Matlab的使用了,决定收回飞出去的鸽子,本文先说说绘图问题。
绘图基础
绘图选项
绘图选项 | |||||||||
---|---|---|---|---|---|---|---|---|---|
曲线类型 | 曲线颜色 | 曲线颜色 | 标记符号 | 标记符号 | |||||
选项 | 意义 | 选项 | 意义 | 选项 | 意义 | 选项 | 意义 | 选项 | 意义 |
‘-‘ | 实现 | ‘b’ | 蓝色 | ‘c’ | 蓝绿色 | ‘*’ | 星号 | ‘pentagram’ | ⭐ |
‘–’ | 虚线 | ‘g’ | 绿色 | ‘k’ | 黑色 | ‘**’ | 点号 | ‘o’ | ⚪ |
‘:’ | 点线 | ‘m’ | 红紫色 | ‘r’ | 红色 | ‘x’ | 叉号 | ‘square’ | ⬜ |
‘-.’ | 点划 | ‘w’ | 白色 | ‘y’ | 黄色 | ‘v’ | ▽ | ‘diamond’ | ◇ |
‘none’ | 无线 | ‘[r,g,b]’ | 自定义 | ‘^’ | ▲ | ‘hexagram’ | ✡ | ||
‘>’ | 左三角 | ‘<’ | 右三角 |
特殊绘图曲线
特殊二维曲线绘图函数 | ||
---|---|---|
函数名 | 含义 | 常见调用格式 |
bar() | 二维条形图 | bar(x,y) |
comet() | 彗星状轨迹图 | comet(x,y) |
compass() | 罗盘图 | compass(x,y) |
errorbar() | 误差限图 | errorbar(x,y,l,u) |
feather() | 羽毛状图 | feather(x,y) |
fill() | 二维填充函数 | fill(x,y,c) |
hist() | 直方图 | hist(y,n) |
loglog() | 对数图 | loglog(x,y) |
polar() | 极坐标图 | ploar(x,y) |
quiver() | 磁力线图 | quover(x,y) |
stairs() | 阶梯状图 | stairs(x,y) |
stem() | 火柴杆图 | stem(x,y) |
semilogx() | 半对数图 | semilogx(x,y) |
semilogy() | 半对数图 | semilogy(x,y) |
plotmatrix() | 散点图 | plotmatrix(x) |
绘图基础指令
二维绘图 1
2
3
4% x,y为数据集,paras为绘图选项,下同
plot(x,y,'paras')
plot(x1,y1,'paras1',x2,y2,'paras2',...)
plot(y)- Demostration:
1
2
3
4
5
6
7
8
9plot(x,y):
如果 X 和 Y 都是向量,则它们的长度必须相同。plot 函数绘制 Y 对 X 的图。
如果 X 和 Y 均为矩阵,则它们的大小必须相同。plot 函数绘制 Y 的列对 X 的列的图。
如果 X 或 Y 中的一个是向量而另一个是矩阵,则矩阵的各维中必须有一维与向量的长度相等。如果矩阵的行数等于向量长度,则 plot 函数绘制矩阵中的每一列对向量的图。如果矩阵的列数等于向量长度,则该函数绘制矩阵中的每一行对向量的图。如果矩阵为方阵,则该函数绘制每一列对向量的图。
如果 X 或 Y 之一为标量,而另一个为标量或向量,则 plot 函数会绘制离散点。但是,要查看这些点,您必须指定标记符号,例如 plot(X,Y,'o')。
plot(y):
如果 Y 是向量,x 轴的刻度范围是从 1 至 length(Y)。
如果 Y 是矩阵,则 plot 函数绘制 Y 中各列对其行号的图。x 轴的刻度范围是从 1 到 Y 的行数。
如果 Y 是复数,则 plot 函数绘制 Y 的虚部对 Y 的实部的图,使得 plot(Y) 等效于 plot(real(Y),imag(Y))。
- Demostration:
三维绘图 1
plot3(x,y,z,'paras');
标题&名称&格栅 1
2
3
4
5
6xlabel('name'); % x轴标题,下同
ylabel('name');
zlabel('name');
title('name');
grid on; % 开启格栅
grid off; % 关闭格栅特定数据点显示标记 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17% 指定标记符号 设定MarkerIndices属性 设定取点步长
x = [data];
plot(x,'-marksign','MarkerIndices','step');
y = [data];
z = function(y);
plot(y,z,'-marksign','MarkerIndices','step');
% '-'一定不能少,marksign为上表中标记符号之一,'step'自行设定步长
% 举例如下
% 生成10*10的幻数矩阵
% ☆标记,每五个数据点标注一个
x = magic(10);
plot(x,'-pentagram','MarkerIndices',1:5:length(x));
% 生成0-100内均匀取样50个点,生成余弦函数
% ⚪标记,每隔10个去一个样点
x=linspace(0,100,50);
y=cos(x);
plot(x,y,'-o','MarkerIndices',1:10:length(y));指定线宽,标记大小与颜色 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20plot(x,y,'-marksign',...
'LineWidth',value,...
'MarkerSize',value...,
'MarkerEdgeColor','colorsign',...
'MarkerFaceColor',[value,value,value]
)
% LineWidth 设置线宽
% MarkerSize 设置标记大小
% MarkerEdgeColor 设置标记边框颜色
% MarkerFaceColor 设置标记面颜色,由rgb矩阵表示,数值均为小于1的数
% 不要忘记...表示代码延续
% 举个例子
x = 1:5:100;
y=x.^2;
plot(x,y,'-v',...
'LineWidth',2,...
'MarkerSize',10,...
'MarkerEdgeColor','b',...
'MarkerFaceColor',[0.2,0.4,0.6]
)一图中绘制多条曲线 1
2
3
4plot(x1,y1,'paras');
% hold on 指令实现绘制多曲线
hold on;
plot(x2,y2,'paras')双Y轴图像 1
2% (x,y);(z,w)
plotyy(x,y,z,w)绘制多幅图 1
2
3
4
5
6
7
8
9
10
11
12
13% row:行数 line:列数 index:图标序列号[1,row*line]
subplot(row,line,index);
plot(x1,y1,'paras');
subplot(row,line,index);
plot(x2,y2,'paras');
subplot(row,line,index);
plot(x3,y3,'paras');
subplot(row,line,index);
plot(x4,y4,'paras');
......绘制圆形 1
2
3
4
5
6
7
8r = value; % 半径
xc = value; % 圆心
yc = value; % 圆心
theta = linspace(0,2*pi);
x = r*cos(theta)+xc;
y = r*sin(theta)+yc;
plot(x,y);
axis equal; % 沿每个坐标方向使用相等的数据单位绘制散点图 1
2
3
4
5% 随机生成 20*4的数据矩阵
x=randn(20,4);
% 绘制散点图,每张散点图包含20个散点
plotmatrix(x);
参数列表
- marksign: Marker,标记符号,查阅上表即可
- LineStyle: 线型,查阅上表即可
- Color: 颜色,可以查阅上表,支持RGB三元组,支持十六进制颜色代码,支持英文全称
- MarkerIndices: 显示标记数据索引
1
2
3示例: plot(x,y,'-o','MarkerIndices',[1 5 10]) 在第一、第五和第十个数据点处显示圆形标记。
示例: plot(x,y,'-x','MarkerIndices',1:3:length(y)) 每隔三个数据点显示一个交叉标记。
示例: plot(x,y,'Marker','square','MarkerIndices',5) 在第五个数据点显示一个正方形标记。 - MarkerEdgeColor: 标记轮廓颜色,支持上表内容,支持RGB三元组,支持十六进制代码
- MarkerFaceColor: 标记填充颜色,支持上表内容,支持RGB三元组,支持十六进制代码
- MarkerSize: 标记大小
- DatetimeTickFormat datetime刻度标签格式
1
2
3
4
5示例: 'DatetimeTickFormat','eeee, MMMM d, yyyy HH:mm:ss' 显示日期和时间,例如 Saturday, April 19, 2020 23:41:06。
示例: 'DatetimeTickFormat','yyyy-MM-dd' 显示日期,例如 2022-03-30
示例: 'DatetimeTickFormat','dd.MM.yyyy' 显示日期,例如 30.03.2022
示例: 'DatetimeTickFormat','dd/MM/yyyy' 显示日期,例如 30/03/2022
示例: 'DatetimeTickFormat','MMMM d, yyyy HH:mm:ss Z' 显示日期和时间,例如 March 30, 2022 22:41:06 -0400 - DurationTickFormat: 刻度标签格式
读取Excel表格数据
读取方法
- 读入Excel数据
1
2var = xlsread('absolute_path','sheet','scope')
xls=xlsread('C:\Users\NKU\Desktop\matlab.xlsx','Sheet1','A1:A20');- Demostration:
1
2
3
4
5var: 随便取一个变量名
xlsread(): 读入Excel的专用函数
absolute_path: 待读取xls文件的绝对路径
sheet: 需要读取的是哪个工作表,可以为工作表名称
scope: 表示需要读取的数据的范围,即数据所在的行列
- Demostration:
- 写入数据
1
xlswrite('absolute_path','sheetname','sheet','scope')
- Demostration:
1
2
3
4
5该函数包含了四个参数
第一个参数是文件的路径
第二个参数是要写入的数据集的名称
第三个参数是第几个工作表,这个参数你也可以写该工作表的名称,
第四个参数是在表格中写入的位置,如果默认从A1的位置开始,则可以不写
- Demostration:
参考资源
您阅读这篇文章共花了:
Invitation
Floral-Sunsunrise
FeynmanDirac
created:12/03/2022
Welcome to Floral-Sunsunrise
This is an identification card as an honored membership of FeynmanDirac
Happy to see you follow FeynmanDirac, enjoy science together
验证码启动中...
备用人机验证