MATLAB plot 画折线图的常用命令总结

目录

    • MATLAB plot 画折线图的常用命令总结
    • 写在前面的话
  • 1 plot的数据内容
    • 1.1 希望画的数据
    • 1.2 折线图的点(空心实心)、颜色、线条
  • 2 x、y坐标轴的显示设置
    • 2.1 x、y坐标轴的显示范围
    • 2.2 横坐标标注从 横向 变为 竖向
    • 2.3 横坐标标注的 字体、字号、加粗等
    • 2.4 x坐标轴的文字显示
    • 2.5 y坐标轴的显示为对数坐标轴(log)
  • 3 x、y坐标轴名称(xlabel、ylabel)+标题名称(title)+图例(legend)
    • 3.1 横、纵坐标轴名称(xlabel、ylabel)
    • 3.2 标题名称(title)
    • 3.3 图例(legend)
  • 4 精益求精
    • 4.1 y轴数据的横线+小网格
    • 4.2 x轴与y轴的比例
    • 4.3 将x轴每隔一段距离作区分线
    • 4.4 删掉图上侧、右侧的短刻度线
  • 5 plot画折线图代码汇总
  • 致谢
  • 作者联系
  • 最后...许个愿ba!

写在前面的话

欢迎2022年的到来!好久没写CSDN了。这篇文章的诞生完全是偶然。
起因是2022-01-10 我和姚师兄两个在办公室里唉声叹气,他编他的程序要疯了,我编我的程序也要疯了,于是我们互换了程序编写任务(HAHA~),他帮我写了一整个程序(强啊姚师兄),我帮他写画图的程序,后续又一直改啊改(自夸一波售后到位啊)
由于后续我自己也会经常使用到matlab的画图功能,且我在反复修改姚师兄的图后积累了一定的经验,于是呢记录在这里,希望做个总结+回顾+帮助更多的人~

以下一切描述均建立在 matlab画折线图 的基础上

1 plot的数据内容

1.1 希望画的数据

代码如下:

figure
plot([1:1:100],datas,'r+');

figure 代表开一个新的窗口
执行完plot后,所有这个范围的数据都会被plot上去,如果希望坐标轴和数据紧一点,则代码如下:

axis tight

注意!执行了axis tight后,横坐标的范围不一定就是1:100,因为很可能x=1的时候没有对应数据,系统的横坐标就自然从有数据的地方开始画了。
解决方法请见 2.1 x、y坐标轴的显示范围

1.2 折线图的点(空心实心)、颜色、线条

代码如下:
(这是matlab的LineSpec举的例子,非常好!链接: https://ww2.mathworks.cn/help/matlab/ref/linespec.html.)

plot(t,sin(2*t),'-mo',...'LineWidth',2,...'MarkerEdgeColor','k',...'MarkerFaceColor',[.49 1 .63],...'MarkerSize',10)

1.2 e.g.

2 x、y坐标轴的显示设置

2.1 x、y坐标轴的显示范围

代码如下:

axis([1 100 min(datas) max(datas)+10]);

1和100是x轴的显示区域,min(datas)和max(datas)+10 是y轴的显示区域
这样子就不会存在数据顶到y轴的顶部却不清楚数据大概是多少的情况啦!

2.2 横坐标标注从 横向 变为 竖向

2.2 e.g.

代码如下:

set(gca,'XTickLabelRotation',90)

这个90是指转90°,你设置什么数他就转多少度

2.3 横坐标标注的 字体、字号、加粗等

代码如下:

set(gca,'xtick',[1:2:6,6],'fontname','Times New Roman','fontsize',6,'fontweight','bold')

(我发现这个语句会导致x和y两个坐标轴同时改变字体字号等,目前暂时不会将x轴y轴的字体字号设置得不一样,如果我会了,会及时修改在文章中的,也欢迎大家的补充)

‘fontname’,‘Times New Roman’ 代表字体
‘fontsize’,6 代表字号,现在是6号字(2.3 e.g.),2.2 e.g.里是12号字,对比一下就发现确实小了很多:
2.3 e.g.

‘fontweight’,'bold’表示加粗
这里的 [1:2:6,6] 很有意思,表达的是每隔2显示标记,你的数据可能是1:1:6的一共6个横坐标的点,但是横坐标只显示1,3,5,6

2.4 x坐标轴的文字显示

代码如下:

set(gca,'XTickLabel',{'冬','春','夏','秋'});

2.5 y坐标轴的显示为对数坐标轴(log)

代码如下:

    set(gca,'YScale','log')set(gca,'yminortick','on');set(gca,'ytick',[0,0.2,0.3,0.5,1,3,5,10,20,40,50]);

3 x、y坐标轴名称(xlabel、ylabel)+标题名称(title)+图例(legend)

3.1 横、纵坐标轴名称(xlabel、ylabel)

x轴坐标轴名称的代码,如下:

xlabel('时间','fontname','黑体','fontSize',12,'fontweight','bold','color','k',‘position’,[62,250])

这个‘position’,[62,250]代表坐标轴名称显示的位置,数字自己修改~
当然如果你发现运行这条语句之后找不到坐标轴名称了,且程序没报错的话,就是position设置的太远了,这时候还不如直接运行下面这条简化版代码,虽然x轴名称位置在中间丑了一点但是不妨碍科研ya~

xlabel('时间','fontname','黑体','fontSize',12,'fontweight','bold','color','k')

y轴坐标轴名称的代码,如下:

pos = axis;
ylabel('浓度(mg/m^{-3})','fontname','黑体','fontsize',12,'rotation',0,'position',[pos(1)-2.5 pos(4)-2]);

这个 pos = axis 的axis为 2.1 x、y坐标轴的显示范围 中的axis;
‘rotation’,0则把垂直于y轴显示的y坐标轴名称 变为 垂直于x轴显示,情况如下:
3.1 e.g.

3.2 标题名称(title)

代码如下:

title('我好爱好爱我导师喔喔喔','fontname','黑体','fontsize',25,'fontweight','bold','color','k');

3.3 图例(legend)

代码如下:

legend({'图例1','图例2'},'Location','northeast','fontsize',15);

可以通过调节 ‘fontsize’ 实现 对图例方块大小的调整

4 精益求精

4.1 y轴数据的横线+小网格

4.1 e.g.

如果想作出如上图所示的灰色横线,则代码如下:

set(gca,'Ygrid','on')

如果想作出下图的灰线小网格,则代码如下:

grid on

4.2 x轴与y轴的比例

如果x轴变化范围较大,y轴变化范围较小,则需更改x轴y轴的显示比例,代码如下:

set(gcf,'unit','centimeters','position',[10,5,35,10])

gcf是目标图像的图形句柄对象,gca是目标图像的坐标轴句柄对象
‘unit’,‘centimeters’ 代表单位是cm
‘position’,[10,5,35,10] 代表figure窗口的左下顶点位于以显示器左下角为顶点的笛卡尔直角坐标系的(10cm,5cm)的位置,图的长宽分别为35cm和10cm。如图所示:
4.2 e.g.

4.3 将x轴每隔一段距离作区分线

4.3 e.g.

代码如下:

pos = axis;
x_line = [1:4:100];%间隔为4
n = length(x_line);
for i = 1:nplot([x_line(i),x_line(i)],[pos(3),pos(4)],'k');hold on
end

这个 pos = axis 的axis为 2.1 x、y坐标轴的显示范围 中的axis。

4.4 删掉图上侧、右侧的短刻度线

4.4 e.g. = 4.2 e.g.+4.3 e.g.
代码如下:

box off
ax2 = axes('Position',get(gca,'Position'),...'XAxisLocation','top',...'YAxisLocation','right',...'Color','none',...'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on

(这个操作不是我想的,是别人写出来的,链接: https://blog.csdn.net/zqliu133/article/details/60867771)
注意!这段代码一定要放在画图的最后!一旦运行了这段代码,再想改坐标轴的字体大小什么的都改不了了

5 plot画折线图代码汇总

以后画图可以直接复制以下代码,然后自己再进行修改:

%该程序可画出x轴为具体时间的折线图
%%
%设置时间序列+时间序列
t1=datenum('2020-09-01 0:00:00');
t2=datenum('2020-09-30 23:00:00');
d1=3600/3600/24;%更改第一个3600,以1h为间隔,1h=3600s,第一个3600就代表了多少秒
d2=28800/3600/24;%画图用的d2,隔8h
d3=86400/3600/24;%画线用的d3,隔1day
T = datestr((t1:d1:t2)','yyyy-mm-dd HH:MM:SS')
%%
%画图开始
figure
plot([t1:d1:t2],y1,'-g.',[t1:d1:t2],y2,'-r*');%要改成自己的数据
hold on
axis([t1 t2 min(y1) max(y1)+10]); %要改成自己的数据
pos = axis;%以下是4.3——x轴每隔一段距离作平行y轴的区分线,不需要可以删
x_line = [t1:d3:t2];%要改成自己的数据
n = length(x_line);
for i = 1:nplot([x_line(i),x_line(i)],[pos(3),pos(4)],'k');hold on
endset(gca,'xtick',[t1:d2:t2,t2],'fontname','黑体','fontsize',12,'fontweight','bold')
set(gca,'XTickLabelRotation',90)
datetick('x','mm/dd HH:MM','keepticks')
set(gca,'ytick',[0:10:80],'fontname','黑体','fontsize',12,'fontweight','bold') %要改成自己的数据
set(gcf,'unit','centimeters','position',[10,5,40,15]); %要改成自己的数据
grid on
%以下4行需要改成自己的标注
xlabel('日期(北京时间)','fontname','黑体','fontsize',12,'fontweight','bold');
ylabel('Chl浓度(mg/m^{-3})','fontname','黑体','fontsize',12,'rotation',0,'fontweight','bold','position',[pos(1)-2.5 pos(4)-2]);
title('我好爱好爱我导师喔喔喔','fontname','黑体','fontsize',25,'fontweight','bold','color','k');
legend({'111','222'},'Location','northeast','fontsize',15);box off
ax2 = axes('Position',get(gca,'Position'),...'XAxisLocation','top',...'YAxisLocation','right',...'Color','none',...'XColor','k','YColor','k');
set(ax2,'YTick', []);
set(ax2,'XTick', []);
box on

致谢

感谢2019年帮我画重点+2022年教我编程的姚师兄,在你的帮助下我学到了很多matlab的新命令
感谢2018年帮姚师兄画重点+学识广博又乐于助人的小明,我取得的一切成绩都应归功于你的帮助
感谢姚师兄工位+我工位边的李博士,在你的帮助下,我批量下数据下的又快又好
感谢我的导师,于我而言,世间最美好的事情莫过于与你的相遇

作者联系

本人QQ:723720261,欢迎共同探讨相关问题!欢迎批评指正!
本人原创,转载请注明出处。

最后…许个愿ba!

  • 顺利读博
  • 英语能力快上来啊
  • 保持50kg的体重

MATLAB plot 画折线图的常用命令总结相关推荐

  1. python如何绘制曲线图_python pandas plot画折线图如何显示x轴的值?

    在使用python pandas Series plot画折线图时,不知道该如何显示x轴的值. 代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  2. MATLAB中画折线图:plot函数的简单用法

    20年4月24日更新 关于MATLAB里柱状图的画法,以及如何在图例legend和轴标签xlabel里加入latex公式,请参考 https://blog.csdn.net/u014261408/ar ...

  3. MATLAB plot画的图中,添加描述值、添加横坐标数值,加粗字体,加粗折线

    可结合柱状图画法,丰富画图经验,柱状图参照:https://blog.csdn.net/wmz13248/article/details/106384341 第1步: text(x,y,num2str ...

  4. matlab 画折线图

    针对这篇博客里有些不够详细的地方,后期又写了一个稍微更详细的MATLAB画折线图:https://blog.csdn.net/Rhiney_97/article/details/105000137 代 ...

  5. matplotlib.pyplot常用画图方式函数封装(一)——.plot绘制折线图及设置坐标轴箭头完美解决

    matplotlib.pyplot常用画图方式函数封装(一)--.plot绘制折线图及设置坐标轴箭头完美解决 py.plot常见绘图设置函数封装 绘制函数图像(完美解决坐标轴添加箭头) 绘制折线图 p ...

  6. python plot 增加标记线,matplotlib初学:这样画折线图和添加标注、箭头

    原标题:matplotlib初学:这样画折线图和添加标注.箭头 用matplotlib 画折线图,一般使用plt.plot函数,它的具体格式为: plt.plot(x,y1, '颜色线条') 默认线条 ...

  7. python画折线图代码-用Python画论文折线图、曲线图?几个代码模板轻松搞定!

    前言 这几天在搞论文图,唉说实话抠图这种东西真能逼死人.坐在电脑前抠上一天越看越丑,最后把自己丑哭了-- 到了画折线图分析的时候,在想用哪些工具的时候.首先否决了excel,读书人的事,怎么能用exc ...

  8. python画折线图代码实现_用Python画论文折线图、曲线图?几个代码模板轻松搞定!...

    前言 这几天在搞论文图,唉说实话抠图这种东西真能逼死人.坐在电脑前抠上一天越看越丑,最后把自己丑哭了-- 到了画折线图分析的时候,在想用哪些工具的时候.首先否决了excel,读书人的事,怎么能用exc ...

  9. 使用python的matplotlib(pyplot)画折线图和柱状图

    使用python的matplotlib(pyplot)画折线图和柱状图 今天帮师兄赶在deadline之前画论文的图,现学现卖很是刺激,现把使用matplotlib的子库pyplot画折线图和柱状图的 ...

最新文章

  1. Mac mysql sql_model引起的问题
  2. 微软sql服务器关闭了会怎样,sql server 服务启动后 自动关闭 求
  3. Mysql8.0 3306端口无法远程连接
  4. VDD VCC VSS VEE分别代表什么
  5. Win8 Metro(C#)数字图像处理--3.3图像直方图计算
  6. (原)产品化:架构、过程管理
  7. Rails安全导读【完】
  8. 信号与系统郑君里上册pdf_信号与系统(上册)
  9. C#使用Dotfuscator混淆代码以及加密
  10. 【NLP-NER】命名实体识别
  11. Python+OpenCV:Hough直线检测(Hough Line Transform)
  12. Agile PLM Create Item /BOM Dialog
  13. C语言-字符型数据与ASCII码表
  14. 微信JSAPI支付 跟 所遇到的那些坑
  15. SpringBoot进阶教程(七十三)整合elasticsearch
  16. 解决 jack server is not running
  17. python自动定期清理日志脚本支持Linux+windows
  18. sql判断整除_SQL操作符/运算符
  19. 推荐12个国外免费自助建站网站
  20. webug靶场渗透基础攻略

热门文章

  1. 以太坊简史--俄罗斯少年成 “神” 之路
  2. 2010年全球最酷的20家云安全厂商你知道几家?
  3. mysql 查询前两名_Mysql:查询每门课程成绩的前两名
  4. 谷歌广告西联汇款怎么快速提取
  5. 所有计算机专业考研都变了!西安邮电大学计算机考研改考
  6. Maya 2017 outliner大纲视图未过滤出多余的set
  7. MapBox在vue环境中添加图层样式错乱,修改样式无效的问题
  8. java 根据类名示例化类_Java LocalDateTime类| isBefore()方法与示例
  9. 树莓派综合项目2:智能小车(二)tkinter图形界面控制
  10. Python:PyQt5设计一个文本编辑器窗体程序(附UI窗体和图片素材下载)