1. 为什么一定要用双x双y图——先搞懂需求再动手
做科研绘图的人,迟早会遇到一个场景:你有两组数据,它们共享某一段物理过程,但自变量和因变量的量纲、范围完全不在一个频道上。比如说,你做材料的热电性能测试,一组是Seebeck系数随温度的变化,另一组是电导率随载流子浓度的变化,而载流子浓度和温度之间又有某种对应关系——这时候你既想体现两组数据的内在联系,又不想拼两张图让读者来回对照,双x双y图就成了最优解。
我在实际工作中第一次接触到双x双y图,是在处理燃料电池极化曲线和功率密度曲线的时候。极化曲线横轴是电流密度,纵轴是电压;功率密度曲线横轴同样是电流密度,但纵轴是功率密度。这其实就是双y轴的经典应用。后来遇到要对比两种不同测试条件下的数据,横轴一个用温度、另一个用时间,才发现双x轴才是真正容易让人犯迷糊的地方。
Origin里做双y轴很多人都会,但要说把双x双y同时做好、做到符合论文投稿标准,不少人是靠反复试错试出来的。这篇文章把我踩过的坑和最终沉淀下来的操作流程完整写出来,先从概念讲清楚,再给逐步操作。
具体来说,双x双y图要解决的是三类问题:
- 两类曲线共享同一个物理过程,但自变量坐标不同。比如横轴左边是波长、右边是波数,这在光谱数据里很常见。
- 两类曲线的因变量量纲完全不同。比如一个纵轴是吸收强度、另一个纵轴是透过率百分比,两者是倒数关系,但数值范围差异极大,放同一轴上看不清细节。
- 数据点数量级悬殊、需要两侧独立缩放。比如一个变量范围是0到100,另一个是0到0.001,共用坐标轴会让小数值的那条曲线贴地飞行。
搞清楚你真正需要的是哪种组合,再决定用多少图层、怎么关联轴,这是整个绘图的起点。很多人一上来就点菜单,结果做到一半发现图层关系不对,推倒重来,时间和精力都浪费了。
2. 双y轴的标准做法——Layer Contents与右手Y轴的配合
2.1 最基础的双y轴起点:从Book到Graph
先把最常见的双y轴场景说透。假设你有两列数据,X列是相同的(比如不同温度),Y1是热导率,Y2是电导率,现在要画在一张图里,左右各一个Y轴。
标准操作:
- 选中Book中的X列和Y1列,点击菜单Plot > Line > Line,或直接点工具栏的折线图图标,生成第一张图。
- 保持图形窗口激活状态,菜单选择Figure > Add New Layer(或直接按快捷键Ctrl+N),选择“Right Y”关联方式。这时Origin会创建一个新图层,新图层默认共享X轴,但拥有独立的右Y轴。
- 在新图层上右键 > Layer Contents,把Y2列从左侧Available Data中添加到右侧Layer Contents里。或者更直接的办法:在Book里选中Y2列,直接拖拽到图形窗口上,Origin会询问加为新图层还是加进现有图层,选“New Layer (Right Y)”。
- 双击右Y轴,调整刻度范围、刻度标签格式、轴标题。
这一步做完,你就有一张X轴共用、左右Y轴各管一条曲线的图了。
2.2 关键隐藏点:关联还是独立?
很多人不知道,Origin里“Right Y”这个选项其实分两种:一种是新图层与已有图层做Y轴关联,另一种是完全独立的第二个图层。区别在哪儿?关联模式下,你缩放左轴范围,右轴会自动跟着做对应的线性变换;独立模式下,两侧轴完全互不干扰。
实际操作中我强烈建议保留“关联”,除非你有非常明确的需求要两侧独立。原因很简单:
- 关联模式下两条曲线的相对位置是确定的,左轴数值和右轴数值之间有固定的线性映射关系,后续加辅助线、标注读数值都很方便。
- 独立模式下,右侧轴的自定义范围一旦设得不好,曲线会显得错位,看起来像两张图硬拼在一起,既不美观也容易让审稿人质疑。
用关联模式时怎么让两个轴协调显示?双击右Y轴打开Axis对话框,在Scale选项卡里把From和To设为与左轴关联计算后的合理值。如果数据量级差异太大,关联模式会强制两个轴等比例缩放,这时要注意了——等比例可能让某条曲线被压扁。解决办法是:先让右轴保持关联,但把左轴或右轴的From/To设置成掩盖掉多余空白的值,Origin会按比例自动重算另一侧的刻度。
2.3 一个很容易被忽略的细节:Y轴标题的位置
双y轴的图,左右两个Y轴标题默认分别在轴左侧和轴右侧。如果两条曲线的名称比较长,轴标题容易和刻度标签打架。我的习惯是:轴线标题旋转90度放在轴外侧,但外边界留足够空间。在Layer Properties(图层面板属性)里调整Left和Right的Margin值,一般设为5到10,否则导出图片后右侧标题总是被截掉。
这个细节看起来小,实际操作中栽过跟头。有一次投稿,编辑返回意见说图右侧Y轴标题显示不全,我当时还以为是渲染问题,后来才发现是Canvas的宽度和Axis Title的Offset(偏移量)没设置好。图层属性里Axis选项卡下每个轴的Title都有一个Offset百分比,把它设为0,标题就会紧贴轴标签,再配合Margin加大外边界,就再也没出过截断问题。
3. 双x轴才是重头戏——图层与轴关联机制拆解
3.1 理解图层(Layer)和轴的关系,比记步骤重要
要掌握双x双y图,必须先想明白一个问题:Origin里的每一个Layer都自带一套“坐标系框架”,默认就是底部X轴、左侧Y轴、顶部X轴、右侧Y轴。你在普通折线图里看到的只有左侧Y和底部X,不是因为另外两条轴不存在,The Origin的Layer只是把它们给隐藏了。
所以,做完上面第2节的步骤之后,你其实已经拥有了一个包含两个Layer的Graph窗口:
- Layer 1:底部X轴 + 左侧Y轴
- Layer 2:底部X轴(关联Layer1)+ 右侧Y轴
这时候你需要的“顶部X轴”,在默认状态下也存在,但没有被激活。双x轴的本质,就是在Layer 1或Layer 2里开启顶部X轴,然后对这个顶部X轴做独立的刻度设置。
3.2 开启顶部X轴的正确路径
这里我给一个完整的推荐流程,适合绝大多数双x双y图的需求,也就是两条曲线共享同一套X数据、但需要展示两种X轴刻度表示的情况。光谱学里的波长-波数、力学测试里的应变-位移、电化学里的电压-时间,都是这种结构。
第一步:按第2节的流程先把双y轴图做出来,得到两个Layer的基础图。
第二步:双击Layer 1的绘图区域(注意是绘图区域,不是坐标轴),打开Plot Details对话框。在Layer Properties页面里找到Size/Speed选项卡,往上找,有一个“Link Axes”相关的部分不太够用,直接切到Display选项卡,勾选Show Elements底部的Top(顶部轴)选项。
等等,这个路径在不同的Origin版本里名称略有差异。以Origin 2018到2021版本为例,更稳妥的做法是:
- 在图层上右键 > Layer Properties。
- 切到“Display/Axis”选项卡。
- 找到“Axis”这一栏,勾选Top对应的方框。
如果是比较老的Origin 9.1或更早版本,路径可能是:Format > Layer Properties > Display,然后勾选Top。版本之间菜单措辞有区别,但本质都一样——每个Layer的四条轴,显示与否是可以开关的。
第三步:把Layer 2也做同样处理。为什么两个Layer都要开顶部X轴?因为在这个方案里,我们要用Layer 2的顶部X轴来显示第二套X刻度。但要注意,如果Layer 2的顶部X轴显示出来后和Layer 1的顶部X轴重叠,反而会出现两组刻度叠在一起的情况。所以实际通常只需要在一个Layer上开顶部轴。
我的建议:在Layer 2上开顶部轴。理由:Layer 2本身已经带有右侧Y轴,顶部轴和右侧它们在空间上属于相邻的两条边,视觉上自成体系。而Layer 1的顶部轴保持隐藏,避免和Layer 2的顶部轴重叠打架。
第四步:双击Layer 2的顶部X轴,打开Axis对话框。在Scale选项卡里,把From、To、Increment设置成你想要的新X轴范围。此刻这个顶部轴已经不完全关联底部X轴,点击OK后你会看到图形上方的X轴刻度已经变成了自己的独立风格。
3.3 轴的关联方式:Linear与Custom的区别
在Axis对话框Scale选项卡最上方,有一个Type下拉菜单,里面有Linear、Log10、Ln、Probability等选项。双x双y图里,两个X轴的关联方式通常有两种:
- Linear关联(默认):底部X轴变化,顶部X轴按线性函数同步扫描同一个数据范围。适合波长-波数这种有确定换算关系的场景。
- Custom独立:顶部X轴完全独立设定范围,与底部X轴没有任何数学换算关系。比如底部X轴是时间,顶部X轴是温度,两者通过实验过程建立对应。
拿光谱举例。波长λ(nm)和波数ν(cm⁻¹)的关系是ν = 10^7 / λ(波长单位nm时)。如果你在底部X轴显示波长400到800 nm,顶部X轴想显示对应的波数,那就该选择Linear关联,然后把顶部轴的From和To按公式算出来——注意线性关联无法直接实现倒数关系,所以你更可能需要的是Custom方式,手动输入25000到12500 cm⁻¹的递减范围。
这里必须提醒一个坑:很多人以为用Linear关联,顶部X轴就会自动按公式换算,其实Origin的Linear关联做的是“最小—最大”的线性映射,不负责做倒数、对数的换算。想要波长-波数这种倒数关系无级对应,要么用Custom手动设范围,要么用代码或公式生成一个新的X列。我经常直接用Custom,手动填范围,简单直观,不容易出错。
3.4 试一次完整操作:做一张波长-波数双x双y光谱图
为了把步骤串起来,我举一个完整的操作案例。这是我自己处理红外光谱数据时最常用的流程。
数据形式:
| 波长(nm) | 吸收率(%) | 透光率(%) |
|---|---|---|
| 400 | 65 | 35 |
| 450 | 58 | 42 |
| 500 | 50 | 50 |
| ... | ... | ... |
| 800 | 20 | 80 |
目标:底部X轴显示波长(正向),顶部X轴显示对应的波数(反向,即高波数在左、低波数在右),左Y轴显示吸收率,右Y轴显示透过率。
操作链路:
- 选中波长列和吸收率列,Plot > Line,画出第一条曲线。
- 选中波长列和透光率列,拖进图窗,New Layer (Right Y),获得双y轴图。
- 右键右侧的灰色绘图区域打开Layer Properties,在Layer 2中显示顶部X轴。
- 双击顶部X轴,Scale设置:Type选Custom(或者Linear后手动填),From = 25000,To = 12500,Increment = 2500。这样顶部X轴就是递减方向,高波数在左边,低波数在右边。注意:勾选“Reverse”方向可以快速实现从大到小,不勾也能通过在From/To中手动倒置数值达到同样效果。
- 双击顶部X轴的Tick Labels,设置小数位数或科学计数法。波数的数量级通常上万,建议Number Format设为Scientific,Power in 10^3,显示成25、22.5、20这种带倍数的形式,图面更干净。
这样一张图,底部X轴是常规波长读数,顶部X轴是配套的波数,左侧吸收率,右侧透光率,所有信息集中在同一个图里。
4. 细抠样式:从能看懂到能发论文
4.1 图层对齐:两个Layer必须严丝合缝
双x双y图最常见的实翻车点,是两个Layer的绘图区域对不齐。做出来的图里,左Y轴和右Y轴各自有独立刻度,但两个Layer的边框如果大小不同、位置错位,整张图就会非常难看,甚至数据曲线之间出现视觉偏移。
对齐操作:图层上右键 > Layer Properties,看Size/Speed选项卡。把Layer 1和Layer 2的Left、Top、Width、Height设成完全相同的数值。如果记不住数字,更简单的办法是把两个Layer的分单位从Inch改成% of Page,然后统一设成Left=10,Top=8,Width=80,Height=75。两个图层的面板尺寸一致,数据绘制区域自然重叠。
4.2 坐标轴刻度标签的字体、字号和间距
Origin默认字体在不同版本里不统一,有些版本默认Arial,有些默认宋体。投稿论文一般要求Arial或Times New Roman。双击任意轴打开Axis对话框,Font选项卡里有字体、字号设置。注意这里改的只是当前轴的刻度标签,轴标题等还有单独的设置入口。
还有一个容易忽略的:刻度标签和轴标题之间的距离。双x双y图因为信息量本身就大,如果间距设置太密,图面会显得拥挤。在Axis对话框的Title选项卡里,Offset数值控制轴标题和轴线的距离,一般设在5到10之间比较舒适。Top轴如果也要标题,注意别让它和图的“图纸区域”边框重合。
4.3 曲线颜色和符号的默认配色陷阱
Origin的默认配色是连续变化的七彩色,第一次画出来往往像一条彩虹。对双x双y图来说,曲线之间必须一目了然地区分,但也不能花哨到影响数据阅读。我的习惯是:两条主要曲线用无符号的实线(黑、红或者黑、蓝),如果数据点稀疏,再加全填充的圆形或方形符号。
设置曲线样式的方式是双击曲线打开Plot Details,Line选项卡里设置Color、Style、Width,Symbol选项卡里设置形状、大小和填充色。Width一般设1.5或2,打印出来不会太细。Symbol Size设8到10,否则缩小后看不清。
如果曲线超过两条,我建议Color用Color List里的单色渐深系列,而不是默认的彩色循环。很多期刊对颜色使用有严格要求(比如色盲友好配色),保持克制总是更安全。
4.4 图例:双x双y图的图例容易“分家”
默认情况下,Origin给每个Layer单独建一个图例。两个Layer各有一个图例框,在双x双y图里看起来就像两条注释各据一方,非常乱。
解决办法:把两个图例合并。把其中一个图例框直接拖到另一个图例框附近,然后右键图例 > Properties,在TextBox里手动编辑文本内容,把另一条曲线的标注合进来。
更推荐的办法:在Layer 1的图例上右键 > Legend > Update Legend,把Layer 2的曲线也纳入Layer 1的图例管理。具体操作:图例属性中勾选“Include all layers”,然后在Legend Text里用%1和%2等变量引用。这招学会了,图例就统一且可随数据更新,不用手动一个个改。
合并之后的图例,建议把Frame边框去掉,只保留文字内容,放在图例内左上或右上空白处。双x双y图本身轴多,图例再带个大边框会抢视线。
4.5 辅助线和区域标注
如果有特殊的参考阈值(比如某个关键物理量),可以加一条水平或垂直线。Origin里用菜单Insert > Straight Line,或者直接用左边工具栏的Line工具画。画完以后双击线,可以修改线型、颜色和宽度。想要在线上标注文字,直接加Text,并设置与数据坐标关联(如果希望它在缩放时跟着走,就用Annotation模式)。
在双x双y图里加辅助线,最容易犯的错误是:辅助线添加到了某个Layer上,但缩放另一个轴时,辅助线的位置和值域就对不上了。所以加完线之后,一定要在Plot Details里确认这条线归属哪个Layer,并且理解它的坐标参照的是哪个轴系统。通常水平参考线应放在需要表示的Y轴所属的Layer中,垂直参考线放在对应的X轴所属的Layer中。
5. 导出排版与高频翻车点排查
5.1 导出图片的参数配置
Origin导出图片有几种方式:File > Export Graphs,或者直接Ctrl+G。在Export对话框里,Image Type通常选TIFF或EMF,TIFF用于投稿,EMF用于Word里的矢量编辑。
参数设置建议:
- DPI:300起步,期刊投稿一般300到600。网上投稿系统经常要求单张图片不低于300 DPI,600更保险。
- Color Space:RGB用于电子投稿,CMYK用于印刷。选错了色差会很严重,尤其红色。
- Size:固定宽高比,常见的单栏图宽8.8 cm,双栏图宽18 cm。在Export对话框的Size选项卡里直接输入厘米数。
- Compression:TIFF选LZW,无损压缩,文件体积小。
5.2 常见问题定位表
| 现象 | 可能原因 | 解决办法 |
|---|---|---|
| 顶部X轴显示不出来 | 该Layer的Top轴未在Layer Properties中勾选 | 打开Layer Properties,Display选项卡里勾选Top |
| 顶部X轴刻度与底部X轴完全一致 | 顶部轴还是关联状态,且未手动修改From/To | 双击顶部轴,Scale选项卡改Custom或手动填范围 |
| 两个Layer的绘图区域错位 | 图层位置和大小不一致 | 统一两个Layer的Left/Top/Width/Height |
| 右Y轴曲线超出了图形区 | 关联模式下右轴范围和左轴比例不匹配 | 调整右轴From/To,或在Layer Contents中重新选择关联方式 |
| 图例里只有一条曲线 | Legend未关联全部图层 | Legend Properties中勾选Include all layers |
| 导出后顶部轴标题被截断 | Canvas边界太小或Offset过大 | 增大Layer外边界Margin,或减小Title Offset |
| 底部的X轴和顶部的X轴方向相反 | 顶部轴的From/To设置成了递减 | 确认是否想要这种效果,如不要就把From/To反过来填 |
5.3 版本之间的差异:2017、2019、2021、2025
Origin的版本虽然一直在更新,但双x双y相关的核心界面变化不大。2017及更早版本在Layer Properties上里叫法比较杂,需要多点几次右键找菜单。2019之后的版本,Plot Details对话框整合得更清晰,轴的勾选和刻度设置都在同一区域完成,效率高不少。
如果你用的是Origin 2021或2025中文版,有个好处是菜单都是中文,组装过程更直观,但查教程时反而容易和英文版教程的菜单名对不上。做法是:不管界面语言,认准工具栏图表按钮的位置,以及右键菜单里中文对应的英文功能。
Origin 2025新增了一个小功能,Layer Contents里拖入数据时会自动推荐关联方式,对新手友好很多。但自动推荐不等于正确,双x双y这种带多个独立轴的图,还是建议手动指定。
5.4 从Origin往其他软件迁移时的“轴关联”问题
这里多说一句和工具链相关的内容。有人习惯在Origin里做完图,导出到Illustrator或Inkscape里继续加工。用矢量格式(EMF或SVG)导出时,Origin的图层、坐标轴、标签都会变成普通图形对象。此时原来在Origin里建立的轴联动关系就完全失效了。如果你在Illustrator里修改了某个轴的刻度,顶部X轴不会自动跟着改,所有调整都要手动同步。
所以,我的工作流程是:在Origin里把所有轴的范围、刻度和标签都调到最终状态,导出后再在矢量编辑软件里只做排版层面的大小调整和文字微调,尽量不动轴的数值设定。这能大幅减少跨软件修改带来的同步错误。
6. 一点个人经验和值得试的变体
说回到双x双y图本身。这个图的优势是信息密度高,不幸的也是信息密度高。做图之前,先问自己一个问题:两个X轴的对应关系有多少读者能在几秒内看懂?如果答案是不太能,那可能就不适合用双x双y,拆成两张并排的子图反而更清晰。
我自己的筛选标准是这样:
- 两个X轴之间存在数学换算关系的,比如波长和波数、时间和采样点数,强烈推荐双x双y,一眼能看懂对应。
- 两个X轴只是“刚好出现在同一个实验里”的,比如显式横坐标是时间,但顶部X轴是环境温度,两者只是相关联的变量而非严格换算关系,这种情况只有在论文的讨论部分要强调这个关联时才推荐用,否则容易让读者一头雾水。
- 两个X轴完全没有逻辑关联的,绝对不要用双x双y,纯粹是给审稿人添堵。
还有一个实用变体:双x单y。有时候左右双y轴会显得多余,主变量只看一个y,另一个信息量其实都包含在x轴换算里了。比如一条曲线,底部x是电流,顶部x是对应的功率密度(两者呈平方关系),只留一个y轴就够了。这种情况下图面更清爽,也避免了双y轴被人诟病“误导视觉”。
具体操作是在双y轴做完后,直接隐藏右侧Y轴的刻度线,或者干脆做的时候只关联X轴不关联Y轴。在Add New Layer的选项里,除了Right Y,还有一个Right X(只能给新图层挂右侧X轴),以及Linked X/Y等不同组合。每个组合对应不同的关联矩阵,我不建议背这些组合名,记不住就多试几次,只要理解“Y轴关联Y轴、X轴关联X轴”这个拆解原则,任何组合你都能预判结果。
最后分享一个我在Origin里常用的效率小技巧:把双x双y图的图层结构保存为模板。在完成一张满意的图之后,右键图层 > Save as Template,或者在Graph窗口标题栏上右键选Save Template As。以后只要数据格式相同,直接基于模板绘图,数据列会自动映射到对应图层里,省去每次重新设置轴关联、刻度范围和颜色样式的功夫。我自己的实验数据格式非常固定,这个模板我至少用了一整年,每次出图只花两分钟调整刻度范围和标题文字,剩下的时间都留给思考怎么把图做得更容易读懂。
双x双y图是个“看着高级、做起来需要耐心”的图表类型,但掌握图层和轴的关联逻辑之后,它甚至比普通双y轴图更可控。你只需要记住:每条轴都隶属于某个图层,图层的坐标框架相互独立,轴与轴之间是否联动取决于关联设置,剩下的都是细节问题。把这几个关键点理顺了,不论Origin的版本怎么更新,你都能很快上手。