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
 6- xlabel('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
 20- plot(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
 4- plot(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
 8- r = 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
 验证码启动中...
                验证码启动中...
            备用人机验证