横坐标不均匀的图片绘制(matlab实现)

效果图

话不多说,先上个图

数据采集

预先准备好存放数据的Excel文件,打开matlab,选择导入数据

选中要导入的数据文件

这里选择数值矩阵,便于后续的操作

导入成功后,可以再工作区看到导入的数据

右键点击Untitled,可以对变量进行改名,这里改成ur

双击该变量,可以看到变量存储的值

发现不小心把表头给加进来了,由于选择的是数值矩阵的方式,故无法识别英文,其默认替换为NaN(Not a Number非数),我们把它删掉即可,操作和Excel删除数据的方式一样,选中数据右键即可

删完之后得到干净的数据

为了方便后续的操作,我们先把矩阵中的数据给提取出来,分成f变量和u变量,在命令行中输入如下代码

f=ur(1,:);
u=ur(1,:);

其中分号可加可不加,加了可以回显变量,效果如下

图像绘制

不加以处理的数据绘制出的图像

在绘制好看的图之前,我们先来看一下直接进行绘制会出现什么现象

首先点击matlab上方导航栏APP选项,选择里面的曲线拟合器

点击选择数据

x数据选择刚才的f,y数据选择刚才的u,关闭

在拟合类型处有多种选择

但你会发现,无论哪种选择,其拟合效果都很差劲,比如我选择用高斯曲线拟合

肉眼可见有很大的误差,其原因就在于最后一组数据和前面几组数据过于分散,导致图像左侧数据太集中,无法有效的展示信息,因此我们在这里采用横坐标对数化的处理思路

对数化处理绘制出的图像

回到命令行,我们输入如下代码

f=log(f)

可以看到原先的f被映射到了对数,我们再次利用对数坐标进行绘制

回到曲线拟合器,重新选择一次数据

把f更新到最新的f

可以看到现在的拟合效果就比刚才有了显著的提升,但是此时横坐标并不是我们想要的不均匀坐标,该如何操作呢?

修改坐标不均匀

首先,我们点击导出按钮

选择“导出为图窗”

点击编辑->坐标区属性

找到XTick和XTickLabel

没有的话可以搜索,也可以双击横坐标

这里XTick的意思是x坐标的实际位置,比方说上图中的2,3,4……对应的就是图像中横坐标的真实距离

而XTickLabel的意思是在XTick位置显示的数据是多少,比方说2对应的XTickLabel是2.5,那么在横坐标上长度等于2的位置就会显示2.5,我们来实验验证一下

点击右侧的三个点

我们把2 2改成2 2.5

可以看到坐标真的发生变化了,根据这个思路,我们只需要将XTick改成上面进行log处理后的f,XtickLabel改成没有log处理过的f就可以了(注意XTick必须是递增序列,修改的时候要注意)

最后点击保存,选择自己喜欢的格式(这里我选的是png格式)即可

评论

  1. yuanweipeifang
    2 年前
    2024-6-30 10:56:35

    matlab太难了,不如python直接脚本执行

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇