ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Origin双x双y图完全指南:从图层关联到坐标轴设置

Origin双x双y图完全指南:从图层关联到坐标轴设置 在科研和工程出图的时候经常遇到一种尴尬情况两个物理量都要看量纲却完全不一样。比如左边想放温度右边想放压力又比如上面想放时间下面想放对应的波长。强行用同一个坐标系画一定有一组数据被压成一条平线看起来就像没测到信号。这种时候Origin里的双x双y图就是最顺手的解决方案。网上关于Origin的教程很多但大部分停留在“点模板、出图、完事”的层面真正讲清楚双x双y图坐标轴怎么关联、图层怎么叠放、数据怎么归档的很少。这篇东西我打算把这类图的底层逻辑、实操步骤、以及我这些年作图踩过的坑一次性说透希望能帮到正在跟多轴图较劲的朋友。1. 双x双y图的典型场景与设计思路1.1 双x双y图到底解决什么问题先把这个图的使用场景捋清楚。双x双y图字面意思就是一个绘图窗口里同时存在两组横坐标和两组纵坐标。最常见的形态是双侧y轴图左侧为y1轴右侧为y2轴共享同一个x轴进阶形态则是上下x轴、左右y轴同时存在两组数据各自拥有完整的坐标系。为什么不用普通单轴图解决问题关键在于数据量纲和数值范围。我举一个非常典型的材料表征例子同一个样品一边测热重曲线TG纵轴是质量百分比单位%一边测差热曲线DTA纵轴是微伏或毫瓦。TG信号可能从100%跌到30%DTA信号可能只有几十微伏的波动。如果你强行把两者画在同一个y轴上DTA那条线会紧贴零线任何峰形都看不出来。还有更头疼的两个信号连横坐标都不同。比如一边是样品的吸收光谱x轴为波长200–800 nm另一边是样品的荧光发射谱x轴为发射波长400–700 nm。虽然都是光谱但物理过程不同、横轴语义也不同这时候上下x轴就派上用场了上x轴对应荧光发射波长下x轴对应吸收波长左右y轴分别给吸收强度和荧光强度。另一类常见场景来自电化学测试。循环伏安曲线CV和线性扫描伏安曲线LSV经常需要对比两者虽然x轴都是电位但y轴一个是电流密度、一个是电流对数的绝对值量纲和变化范围差异很大。用双y轴图把它们叠在一起看拐点位置比翻两张图来回对照高效得多。所以双x双y图解决的问题本质上是让两个量纲不同、范围差异大或者横坐标物理意义不同的数据在同一个图幅内实现视觉叠加同时保留各自独立的坐标语义。1.2 图层叠放的底层逻辑想用好双x双y图必须先理解Origin的图层Layer体系。Origin的绘图窗口本质是一个画板里面可以有一个或多个图层。每个图层可以理解成一张透明胶片胶片上有自己的坐标系、自己的数据曲线。多图层叠在一起视觉上就是一张图但每根曲线归属于哪个图层、哪个坐标轴是严格分开的。双x双y图最常见的实现方式不是在同一个图层里放两个x轴和两个y轴虽然也可以但坐标轴关联容易乱而是用图层叠加的方法底层放一个空图层定义好坐标轴框架和刻度范围上层再叠放两个数据图层一个关联左y轴和下x轴另一个关联右y轴和上x轴。为什么推荐这种方式因为Origin对图层对象的操作比单图层多轴更直观每个图层的坐标轴可以独立设置范围、刻度和标题不会出现“改了一个轴的刻度另一个轴跟着乱跳”的连锁反应。而且图层之间可以随时调整叠放顺序想突出哪条曲线就把对应图层放到前面。图层之间还有一个关键机制叫“坐标轴关联”Axis Link。默认情况下新建图层与底层图层的x轴关联方式是Custom也就是你可以让第二层的x轴自适应自己的数据范围也可以让它强制跟随底层x轴的起止范围。双x双y图里上x轴和下x轴往往希望各自独立而两个y轴一个在左一个在右也要通过Layer Management把它们的显示位置指定清楚。从操作习惯上讲新建多图层图最省事的方式是File → New → Graph选择模板里的Double X/Y更灵活的方式是用Worksheet里直接选中数据列Plot → Multi-Panel/Axis → Double Y或者干脆先画一张单图再用Layer Management手动添加新图层。2. 画图前的数据准备与坐标系理解2.1 这四列数据要怎么摆很多人拿到数据就往Origin里粘粘完发现根本不知道四列数据该怎么对应。这里先明确一个基本规则在Origin的工作表里绘图之前必须把数据列的数据属性设置正确。一般情况下第一列是X第二列是Y第三列是另一个X第四列是另一个Y列属性通过双击列头在Properties里设置也可以在列头上直接右键Set As X/Y。我自己的习惯是把同一组数据放在相邻的列里比如A列是x1下x轴B列是y1左y轴C列是x2上x轴D列是y2右y轴。这样选中B列和D列画图时自动匹配离它最近的X列不容易搞错。核心原则一句话每一条你要画的曲线它的正上方或紧邻位置必须有对应的X列。如果你把x1放在A列y1放在D列中间隔了两列无关数据Origin也能认但你在选数据范围时很容易把无关列带进去图乱了排查半天。再补充一个隐藏细节x2这个列的数据未必是原始采集的数值它可能是由y1对应的某个物理量换算出来的。比如下x轴是时间0–10 min上x轴想标成转速由时间换算而来那C列可以写公式比如C列某个常数除以A列。Origin支持在列上直接写公式Set Column Values非常方便不用在Excel里先算好再导进来。列属性设置完成后养成保存工作表的习惯最好把每个项目的数据文件单独归档。Origin工程文件.opju里可以包含多个工作表、多个绘图窗口用起来很顺手前提是每次画完图都顺手CtrlS别等程序崩了再追悔莫及。2.2 坐标轴归属关系是核心双x双y图的难点不在画线而在“这根曲线到底跟着哪个轴走”。双y轴图的默认逻辑是在工作表里选中y1列和y2列直接Plot → Multi-Panel/Axis → Double YOrigin会自动生成两个图层Layer1里的曲线关联左下轴Layer2里的曲线关联右上轴。但如果手动添加图层或者想调整归属就需要进入Plot Details双击任意一条曲线在Layer1的树形列表下找到这条曲线右侧面板里会有X Axis Link和Y Axis Link两个选项。它们决定了当前曲线在图层的坐标系里使用哪一对轴。默认是当前图层自己的X轴和Y轴但你可以改成“直接关联到Layer1的x轴”“关联到Layer2的y轴”等选项。我见过太多人在这里翻车明明画了双y图第二条曲线却出现在左y轴的坐标系里数值范围完全对不上曲线被压扁在图的底部。原因就是这条曲线的Y Axis Link被设置成了当前图层的主y轴左轴而不是右上轴。解决办法就是双击曲线把它改成关联到Right或Top轴。理解坐标系归属还有一种更直观的方式打开View → Object Manager对象管理器或者Layer Management窗口看每一个图层的缩略图Origin会用缩略图告诉你这个图层的框架是左边有轴还是右边有轴、下边有轴还是上边有轴。看到缩略图再对照你的曲线归属绝大部分问题都能一眼定位。3. 从零开始画双x双y图完整实操流程3.1 方法一直接使用双x双y模板如果你是新手想最快速度出一张可用的双x双y图就用模板法。步骤如下准备数据A列x1、B列y1、C列x2、D列y2列属性分别设为X、Y、X、Y。按住Ctrl同时选中B列和D列注意不要全选所有列否则Origin会把A和C也当Y列画进去。菜单栏 Plot → Multi-Panel/Axis → Double Y。如果用的是Origin 2021及以上版本菜单里可能写着“Double Y”或者“Double X/Y”没有也没关系选Double Y后得到的是双y轴图然后手动打开上x轴。生成后会看到左侧一条曲线属于Layer1关联左下轴右侧一条曲线属于Layer2关联右上轴。用这个模板的好处是Origin已经帮你建好两个图层并且自动把图层的y轴左右分离。接下来的关键操作就是把上x轴“点亮”双击顶层图的上x轴位置或者在图层空白处双击打开Layer Properties在Size/Speed选项卡下面找到轴显示设置把Top勾选上。很多模板默认只显示左右y轴和下x轴上x轴是隐藏的需要手动打开。模板法适合数据关系比较标准的场景。如果两组数据的x轴范围差异极大模板生成后往往需要重新手动调整上下轴的范围这时候别慌双击每条轴在Scale选项卡里把From/To改成适合该轴数据范围的数值就行。3.2 方法二手动添加图层自由度更高模板虽然快但有时候受限于预设格式。比如你要做一个左右y轴和上下x轴都独立的完整四轴图模板不一定完全符合要求手动搭图层反而更灵活。我的常用手动流程是先选中第一组数据x1, y1画一张普通点线图。这张图是Layer1拥有下x轴和左y轴。在绘图窗口的空白区域右键 → Layer Management旧版叫Layer Content或New Layer新建一个Layer位置选择Right Y或者Top XLayer2就出现了。在Layer Management里点击Layer2把第二组数据x2, y2添加进来。具体操作是在Layer Content列表里把左边可用的数据列选中用中间的Add按钮加进右边的图层内容框。双击Layer2的曲线在Plot Details里检查X Axis Link和Y Axis Link确保它使用Layer2自己的轴也就是右上轴。手动图层的好处是每一层都能单独调整可以把Layer1的y轴范围设置为0–100把Layer2的y轴范围设置为0–1000互不干扰还可以右键图层给不同图层设置不同背景色或框线颜色用于区分不同数据来源。不过手动方式也有坑如果数据列被错误添加到了不该属于它的图层曲线会出现但你看不见或者显示在完全错误的位置。这时候别急着删图先双击打开Plot Details看曲线名前的小图标确认它归属于哪个图层。如果它出现在Layer1下但你想让它归Layer2可以直接在Plot Details左侧的树形列表里把这条曲线拖到Layer2节点下。3.3 坐标轴范围与刻度设置坐标轴范围设置是整个双x双y图看起来是否专业的关键。做一个合格的多轴图一个基本原则是左侧y轴和右侧y轴的刻度范围不能完全照搬数据的最小到最大值要留出10%–15%的余量让曲线不贴边。上下x轴同理。操作入口是双击对应坐标轴弹出Axis对话框。在Scale选项卡下From和To就是起止值。假如y1的数据在1.2到8.6之间建议From设为0或1To设为9或10如果数据从0.35到0.42就不要从0开始否则曲线会被压缩在中间一条窄带里应该把From设为0.30To设为0.45让波动幅度充分展开。刻度增量Increment怎么选我的经验是优先选择1、2、5、10这类整齐数字的倍数避免出现0.333、0.667这种怪异的刻度间隔。如果系统自动算出来的刻度是0.37、0.74、1.11这种手动在Increment里改成0.5或1图面会清爽很多。还有一个细节容易被忽略两个y轴的刻度方向。默认左右y轴都是从小到大也就是从左往右升序。但如果画的是深度剖面图或者横坐标是波长但希望短波在左侧的情况需要勾选Scale选项卡里的Reverse。双x双y图里上下x轴如果方向不一致务必看清每根轴上的箭头方向否则数据会读反。4. 进阶美化细节决定论文插图质量4.1 图例横向排列与统一双x双y图最容易出现的问题之一是图例混乱。默认情况下Origin会给每个图层生成一个独立的图例框叠在一起显得又乱又占地方。把多个图例合并成一个并且横向排列是出图前的标准操作。操作方法有两种。第一种最快点击图例框右键 → Legend → Properties在Layout里选择Horizontal横向排列。不过如果图例框是分层的多个需要先合并。合并的方法是先删除多余的图例框只保留一个然后右键保留的那个 → Legend → Reconstruct Legend重新生成一个包含所有图层曲线的图例。第二种方式更可控右键图例 → Properties在Text选项卡里手动编辑图例文本每条曲线一行用 \l 开头表示曲线图标例如\l(1) 吸收光谱 \l(2) 荧光光谱这里 \l1表示引用第一条曲线\l2表示引用第二条曲线。手动编辑的好处是可以随意调整文字内容不受工作表中列名称限制。比如列名是“A”“B”“C”但你希望在图上显示“样品1-吸收”“样品1-荧光”就得手动改。图例横向排列的时候记得把图例框拖到图外空白处比如右上角或底部中间不要遮挡数据线。如果图太长导致图例被截断可以缩小字号或者在图例框右键选择Resize以满足整体布局。4.2 字号、字体、线型与数位显示论文插图最忌讳的就是字号不一、字体混乱。Origin默认字体在不同版本里不一样老版本可能是Arial新版本可能是Calibri或默认主题字体。中文期刊一般要求宋体或黑体英文期刊要求Times New Roman或Arial。一张图内所有文字轴标题、刻度标签、图例最好统一字体和字号这是最基本的排版素养。修改全局默认字体的方法菜单 Tools工具→ Options选项→ Text Fonts把Default Font改成你需要的字体比如Arial或Times New Roman。这样新建的文本对象都会自动使用该字体不用每次逐个改。已经生成的图需要批量修改的话可以按住Ctrl全选所有文本对象然后在格式工具栏里统一设置字号和字体。坐标轴刻度小数位数的设置也是一个高频需求。双击坐标轴 → Tick Labels → Number Format把Decimal Places设成2表示保留两位小数。如果数据本身是整数比如10、20、30设成0更干净否则全图都是10.00、20.00显得累赘。操作路径因版本略有差别新版Origin 2021以上叫Number Format老版本叫Numeric Display本质一样。线型和符号选择也有讲究。双x双y图里两组数据如果颜色区分不太明显例如黑白打印就要借助符号区分一组用实心圆●一组用空心方块□。双击曲线 → Line/Symbol在Symbol里选形状在Line里选线型和线宽。两条曲线如果都是实线颜色不同也还好如果颜色也接近就把其中一条改成虚线避免读者混淆。4.3 添加新的数据到已有图形画完图之后发现又测了一组数据想加进来这在科研中太常见了。双x双y图添加数据关键是要分清加在哪一组坐标系里。如果新数据应该沿用左y轴和下x轴最简单的做法是直接把新列拖进绘图窗口。Origin会默认把它加入Layer1自动使用Layer1的坐标轴。如果想加进右上轴Layer2可以先激活Layer2然后右键 → Layer Content → 在Available Data里选中新列 → Add → OK。还有更精细的操作方式如果新列想加入Layer2但在Layer Content里没看到这个列检查一下这个列是否在同一个工作表里。跨工作表的列需要先在Data列表里找到对应的工作表展开后选中列。如果列被设置为Y属性但关联的X列与目标图层不匹配加入后曲线会消失或显示为一个大点这时候双击曲线检查X Axis Link手动指定正确的X。另外提醒一句添加数据后务必重新检查坐标轴范围。新数据的数值范围如果超出了原有坐标轴曲线不会被自动截断但可能超出绘图边界看起来就像没画上去。双击对应坐标轴把To值调大曲线就会立刻出现。5. 常见问题与排查技巧5.1 常见问题速查表格式方面经常翻车的地方不少我把高频问题按现象整理了一张表方便遇到问题直接对照。现象可能原因解决方法第二条曲线被压扁在底部Y Axis Link关联错误曲线使用了主y轴但数值范围太小双击曲线改Y Axis Link为“直接关联到右y轴”上x轴或右y轴不显示轴的显示开关没有打开双击图层在轴显示设置里勾选Top或Right两条曲线都在同一图层y轴切换困难数据列被加到了同一个Layer中用Layer Content把其中一条移到新图层图例重复出现多个框每个图层自带图例删除多余图例框右键剩余图例Reconstruct Legend单条数据曲线显示成一条竖线或平线x列和y列属性设置错误或x列选择错误检查列属性确认数据列前面标记为X或Y两个x轴刻度对不齐上下轴范围设置不合理手动重设两个轴的From/To必要时锁定上下轴比例图中出现demo水印软件未获得有效授权使用正版或学校批量授权版本注意版权合规坐标轴刻度显示0.666、1.333自动增量不合适在Tick Labels中手动设置Increment为0.1、0.2、0.5等整齐数值5.2 几个我踩过的坑第一个坑坐标轴关联被调乱之后曲线的“可见性”和“实际位置”完全脱节。有一次我给同一个图层里的两条曲线分别关联不同y轴结果一条曲线显示在图层上部另一条显示在图层外部找了好久才发现是Y Axis Link改错了。解决方案是把两条曲线的Y Axis Link都改为“直接关联到左轴”确认显示正常后再逐个改成右轴每次改完立刻看图。第二个坑双x双y图导出图片时候字体变乱。Origin在导图时如果选择位图格式PNG、TIFF字体默认嵌入像素点但如果选了矢量格式PDF、AI、EPS字体信息会保留在文件里。问题在于如果目标电脑上没有安装Origin里使用的字体打开矢量文件就会出现字体替换整个图的样式瞬间垮掉。我的经验是导出矢量格式前把所有字体统一为Times New Roman或Arial这两种字体几乎在所有系统里都有。第三个坑不做数据管理关闭工程文件后再也找不到数据。双x双y图往往对应多列数据如果你只把图片导出忘记保存.opju工程文件一个月后要修改数据时只能重新导入。这个坑我踩过太多次现在的习惯是每完成一个项目所有原始数据、分析工作表、最终出图全部保存在同一个.opju中文件名按“日期_项目名_版本”命名每周自动备份一次。第四个坑坐标轴标题的单位和变量名混在一起。明明x轴是时间轴标题却写着“20”或者y轴写了“Intensity”却不带单位审稿人一定会挑刺。正确写法是“Time (min)”、“Intensity (a.u.)”这种“变量名单位”的格式坐标轴标题要用斜体表示变量名单位用正体。Origin里可以支持上下标和特殊格式轴标题输入框里右键就能调出格式工具栏。5.3 特殊场景符号上加横线有人问到Origin里符号上加横线怎么实现这个在双x双y图里不常用但确实会碰到。比如光谱图里经常会用 \bar{x} 表示平均波长或者用 \hat{A} 表示某个修正后的物理量。实现方式其实很简单在轴标题或文本框中输入时切换到特殊符号插入模式。Origin的Text Object里可以插入公式对象菜单 Insert → Math Equation或者在文本编辑状态下右键 → Insert Math Equation会弹出公式编辑器在里面输入带横线的字母。更轻量的方法是直接在文本里输入LaTeX风格的代码块比如 \bar{x} 然后右键选择“启用公式解析”。不同版本Origin的公式插入方式稍有差异2020版之后用Rich Text和Math Equation更顺手。另外一个相关坑是符号上加横线之后字母和横线在导出图片时容易重叠或错位尤其是中文系统下字体替换之后。稳妥做法是用公式编辑器生成它内部是矢量方式渲染不会出现位置偏移。5.4 频率分布直方图与双x双y图的结合还有朋友在热搜词里提到“Origin画频率分布直方图”这里多说一句。如果你想在双x双y图里叠加一组频率分布直方图比如x轴是粒径范围左y轴是数量分数右y轴是累积概率操作上是用柱状图作为其中一个图层的数据。具体做法是先用原始数据列创建一个直方图Plot → Statistical → Histogram然后把它的y列改为相对频率或百分比另一个图层放置累计分布曲线。这样得到的图左y轴是频率%右y轴是累积概率%x轴统一典型的风玫瑰图或者粒径分布累计图就是这样做的。关键在于柱状图和累计曲线必须在同一个x轴坐标系下不需要双x轴只需要双y轴。如果你还想把下x轴和上x轴分别显示频率和实际粒径值那就再加一层。这个组合看起来复杂实际操作并不难先做频率直方图再通过Layer Management添加一条累积曲线图层最后把累积曲线的Y Axis Link设置为关联右y轴。直方图通常用“柱状”样式累积曲线用“点线”样式两者叠加视觉区分度非常高。6. 关于这个主题的几点补充Origin双x双y图的核心说白了就是一个“坐标系管理”的问题。与其记一堆操作步骤不如先把图层和坐标轴关联的机制想明白哪条数据属于哪个图层这个图层用哪一对轴范围和刻度怎么独立设置。把这三点理顺不管数据变化成什么形式你都能快速调整出合格的图。操作层面有一些小习惯值得培养。首先图层命名尽量改成有意义的名字比如“Layer1-时间轴”“Layer2-波长轴”尤其是在图层数量超过两个的时候默认的Layer1、Layer2、Layer3根本记不住谁是谁。其次坐标轴范围不要每次都手动敲数字可以在Scale选项卡里点“Rescale Now”让Origin根据当前数据自动计算一次然后再手动微调效率更高。另外一个容易被忽略但非常重要的点Origin工程的备份。多轴图画起来费时费力一旦工程文件损坏或者误删重新搭建往往比第一次画还痛苦。建议所有重要项目文件夹里同时保存.opju源文件和高分辨率导出图。导出图片的分辨率也务必养成习惯普通查看用72 dpi或96 dpi论文投稿用300 dpi复杂大图优先导出矢量格式方便后期编辑。最后还有一些软性心得。出图这件事本质上是给别人看的不是给自己看的。同一个双x双y图排版差距直接影响审稿人的第一印象。我见过太多数据很漂亮但图面一团糟的情况坐标轴标题跑到图外、图例盖住关键曲线、字号忽大忽小。做图之前多花五分钟清理图面价值远远超过多跑一组实验。我自己现在画多轴图已经离不开一套固定流程先把数据整理干净然后想清楚哪条线用哪个轴再动手画图画完先自动调整一次再逐个轴微调范围接着处理图例、字体、线型最后导出前放大到100%检查一遍确认没有遮挡、没有超出边框、所有文字清晰可读。这套流程走完基本不会出大问题。希望这篇东西能帮你把双x双y图这个工具用好。数据整理、坐标轴关联、图层管理、细节美化、问题排查——这五步掌握了你真的想画什么组合都行。
返回列表