#C0401
沧海茫茫千钟粟,且拾吾昧一微尘
——《沧海拾昧集》@CuPhoenix
【阅前敬告】
沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系
如有问题定为本集记录有谬,切勿深究
一、简单的连续图
1、建立新画布
figure(x) // 建立一个新的画图区, x 是个整数
2、画图命令
plot(x,y) // 以x为横轴,y为纵轴画图
plot(x,y1,x,y2) // 以x为横轴,y1,y2为纵轴画图
在画图时可以对线附加样式
(...,'Color','r')
// r-红色, g-绿色, b-蓝色, c-青绿色, m-洋红色, y-黄色, k-黑色, w-白色
(...,'LineStyle','-')
// '-'实线, '--'虚线, ':'点状虚线, '-.'点划线
(...,'LineWidth', 1)
// 线宽
(...,'Marker', '+')
// 点的形状,可选值 + o * . x ^ v < > s(正方) d(菱形) p(五角星) h(六边形)
(...,'MarkerFaceColor', 'r')
// 标记点填充颜色
(...,'MarkerEdgeColor', '+')
// 标记点边缘颜色
(...,'MarkerSize', 3)
// 标记点大小
3、一图多线
hold on
4、显示的坐标范围
axis([min_x max_x min_y max_y]) // 指定图片的的显示范围
set(gca,'ytick',-50:200:1500) // 指定坐标的显示范围和坐标间距
// 此处起始坐标-50,间距200,直到1500(-50,150,350...)
// 若要(0,200,400...)应设置为 0:200:1500
5、显示网格
grid on
6、设置字体
字体的设置方法基本都是通用的,格式基本一致,这里以设置全局字体为例。
//**********************************************
//
// 字体:Times New Roman(可以简写为Times)
// 字号:18
// 线型:加粗
//
//**********************************************
set(gca,'FontName','Times New Roman','FontSize',18,'FontWeight','bold') // 设置全局字体
set(0,'defaultAxesFontName', 'Times'); // 设置坐标轴字体
set(0,'defaultTextFontName', 'Times'); // 设置文字字体
('\fontname{宋体}变量\fontname{Times}X') // 中英混杂
7、标题和轴标注
title('str1') // 表头标题
xlabel('str2') // x轴标注
8、隐藏坐标轴
set(gca,'xticklabel',[]) // 隐藏x轴数字
set(gca,'xtick',[]) // 隐藏x轴刻度
set(gca,'xtick',[],'xticklabel',[]) // 合并写法
//xtick和xticklabel替换成yz即可对yz轴操作
9、图例
legend('x','y') // 默认右上角
legend('x','y','location','xxxx') // 手动设置位置
//xxxx的可选值为:north、south、east、west、northeast、northwest、southeast、
// southwest、northoutside、southoutside、eastoutside、westoutside
// northeastoutside、northwestoutside、southeastoutside
// southwestoutside、best、bestoutside、none
10、子图
subplot(1,2,2) // 1行2列,正在绘制第2块(从左往右,从上往下算)
subplot(2,2,[3 4]) // 2行2列,第3、4块合为一块
11、清除画图区中的图和格式
clf // 清除当前图
clf(fig_x) // 清除指定图
12、设置图片背景颜色
set(gca, 'color', [R, G, B]); // RGB的取值范围是[0,1],[0,0,0]是黑,[1,1,1]是白
二、误差条图
errorbar(x,y)
三、for循环
/**********************************************
/
/ 有长度200的数组x, 存有int型数据,
/ 有sum = 0,
/ 数组x前i个数的加和, 依次存放在sum(i)的位置
/
/**********************************************
for i = 1:200
temp = sum(i) + x(i) // 累加x数组中的前i个数
sum = [sum, temp] // 在sum的末列添加temp
end
sum = sum.' // 转置sum(此处由横转竖)
这篇文章值得看:matlab画图操作(修改坐标轴及字体,加粗,颜色修改,适合论文画图)_王延凯的博客的博客-CSDN博客_matlab画图边框加粗
敬谢诸君。
京华西山之巅。