【2023】ORIGIN或MATLAB 颜色图,等高图,颜色条——需要拟合补全中间的颜色

发布于:2025-04-05 ⋅ 阅读:(16) ⋅ 点赞:(0)

前言

不是我疯了,就是世界疯了。我不知道究竟是哪一个疯了。瓶口和瓶盖尺寸不符。也许该怪瓶子,也许该怪盖子。但不管怎样,尺寸不符的事实不容动摇——《1Q84》

             \;\;\;\;\;\;

有十几二十个导出的曲线数据,其中第一列是频率点,大约1001个,第二列是某种数据,都在0~1之间。

如果用绘制曲线图的话,频率为自变量,某种数据做因变量;但是有时我需要的是把0~1之间的数据作为图上的颜色,用别的什么做因变量……


         \;\\\;\\\;

Origin等高图

matlab画的线有个问题,先把正确的方法介绍一下:

打开origin,建立项目,第一列是自变量,后面N列都会对应待绘图上的颜色,因变量就是列上的XX(自定义)

在这里插入图片描述
选中所有数据(不带空列),点击绘图上的等高线,然后选中Y值在列标签,选中列标签如下
在这里插入图片描述
在这里插入图片描述
然后双击颜色图隐藏线条,点击线,按下图操作:

在这里插入图片描述

在这里插入图片描述
接着就是修改标签、刻度了

         \;\\\;\\\;

Matlab等高图

文件数就是因变量数有十几二十个,但是自变量(频率点)有几百了,所以作图步骤:

  1. 读取文件夹内的.txt文件
  2. 按照文件名的数字进行排序
  3. 排序后进行读取文件内容
  4. 按照范围读取
  5. 之后存入二维数组后,还需要转置什么的吧(好久之前的了,忘了)反正就是当点为颜色,这样一个小矩阵生成的图肯定特别小,所以需要在两个点之间插入多个点,把图片撑大。中间的点依靠拟合的函数生成。
%{
   
date: 2023-7-18 周二

自变量为频率,因变量为某个结构参数,比如P:150,160,170,180,190
每个点的颜色就是透射系数,设置1-0为红黑,则越接近1颜色越红越亮,越接近0颜色越黑越暗

纵向的颜色条表示平移,颜色条越弯,平移越大;往左弯就是红移,往右弯就是蓝移!

由于不需要精确计算频点位置,所以不需要flag状态了,就从scan_begin到scan_end就行
%}
clear;         %清空工作区
clc;           %清空命令行窗口
format long;   %设置精度


%设置频率范围
scan_begin = 1.3;   %就从这开始
scan_end = 2.05;    %就在这结束;不能是2.05,那样的话频点6(1.99)就靠近边界了


%文件夹
folder='.\XXX-ramp\';
%显示文件夹下所有符合后缀名为.txt文件的完整信息
%提取符合后缀名为.txt的所有文件的文件名,转换为n行1列
%按前缀提取文件
NAMES={
   dir([folder,'h=*.txt']).name};       %q,可修改
%排序,使得10不在2前面
NAMES=sort_nat(NAMES);
%文件数,因为后面经常用,所以先算了
files_num = length(NAMES);


%读取其中的数字,组成数组'因变量'
raw_Y=zeros(1,files_num);
reg_num='\d+\.\d+';    %浮点数,利用正则表达式提取数字(特殊符号加backslash) ; 比如g1=8.5.txt,要提出后面的8.5
for i=1:files_num
    dateStr=regexp(NAMES{
   i}