matlab中legend_Matlab中将一个矩阵绘制出多条曲线

b2c53bf3b1f3afd5aa97d512a6df25c4.png

问题描述

在Matlab中我用 csvread(path) 读取的数据,一般都是在工作区中以一个 m × n double 的矩阵存在,每一列 或者 每一行 表示一个样品,在绘制每一个样品对应的谱线时,我使用的老办法都是:对每一行 或者 每一列 进行切片, 然后再单独绘制每一条谱线,使用 hold on 语句把每条谱线都绘制到同一个 figure上面。

但是,这样做我感觉非常傻,有点累,虽然这样对于设置每条曲线的样式、颜色、legend都更加灵活,但是当谱线比较多时就显得有些麻烦!

所以,我一直在寻找有没有什么简单的方法,可以直接将一个矩阵绘制出多条谱线的方法,就是这么巧,在CSDN一篇文章的评论区里,看到了一个简单的方法:

那就是直接 plot(X),X就是数据矩阵,但是对于矩阵X的行列设置还是有要求的!

问题解决

举例,X 是一个 6 × 1951 double 的矩阵,表示6条近红外光谱(来自朋友赞助的数据)

fd76e8ab361da6b8bb5ce8b3f96364b3.png
matlab工作区

如果直接 plot(X),如下图:

384a66de6f94fc1ac3e7c71f1944ccfc.png
直接plot(X)

正解应该是先 转置 再绘图,plot(X'),如下图:

8bad7523a0784cfd26be00dc414c48a7.png
转置再绘图 plot(X')

总结

如果谱线数据,每一行表示一个样品,那么 同时绘制多条数据的时候,先转置再绘图

plot ( X' )

开放讨论

有一个问题是,一旦直接 plot 整个矩阵,那么,想单独调整 每一条谱线的样式、线宽、线形、颜色、legend的话,是不是就没办法了,希望有好办法的同学们可以再评论区下方讨论,大家相互交流学习,哈哈~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值