
上周组会师弟拿着一张左边是温度、右边是失重率、上面是XRD角度、下面是热流曲线的“四不像”图来找我说两张图的数据贴不到一起去Page里挪了半天也对不齐问我双x双y图到底应该怎么画。这个问题我太熟了很多刚接触Origin的人确实会被这“四条轴”绕晕尤其是一旦涉及上下两个X轴、左右两个Y轴同时出现图层概念没建立起来整个操作就成了玄学。双x双y图说白了就是一个图形窗口里同时放置两套坐标系统下面和左边的轴属于第一组数据上面和右边的轴属于第二组数据。这样做的直接好处是你不用把两张图上下并排贴在论文里而是让两组量纲不同但又有关联的数据在同一个视野里互相对照。比如升温过程中材料的质量变化和热量变化同一段时间内气温和降水量同一组光谱对应的波长和能量值都能用这种图来呈现。这篇文章的核心就是带着你把双x双y图从数据准备、图层原理、坐标轴映射到最终导出的完整流程走一遍同时把图例横向排列、修改横纵坐标比例、给特殊符号加横线、打开文件没有窗口这些高频问题一并解决掉。1. 双x双y图不是堆坐标轴而是叠图层1.1 先想清楚你要画的到底是哪一种双x双y很多人一打开Origin就急着找“双x双y”按钮其实这个需求还能再细分至少可以分成三种完全不同的情况处理方式也不一样。第一种是最常见的画两组完全不同量纲的数据。典型场景是一个样品在升温过程中横轴是温度左侧Y轴是质量保留率右侧Y轴是热流。这两组数据的X轴自变量其实完全相同只是因变量量纲不同所以理论上用双Y单X图就够了。但如果左侧Y轴的数据本身还对应另一个自变量比如材料强度随温度的变化同时电导率随另一个外场参数变化这时候才需要真正的双X双Y。第二种是同一个数据但要在图形上显示两套不同的横坐标单位。最常见的就是光谱图底部X轴显示波长nm顶部X轴显示能量eV曲线只有一条但两个横坐标刻度存在换算关系例如E1240/λ。这种“同一数据双坐标”的实现方式跟第一种不一样不是靠叠两个图层而是靠坐标轴链接。第三种是两组数据共享同一个图形区域但X轴和Y轴的物理意义、取值范围都完全不同。比如底X轴是时间左Y轴是浓度顶X轴是pH右Y轴是粒径。这种图在原理解上约等于两张图拼在一起但为了让它们在空间上重叠必须通过图层叠加实现。你在动笔之前先分清楚是哪一种后面所有的操作步骤才会顺。很多人画完一乱根源就是一开始没分清自己到底要哪种“双x双y”。1.2 熟悉Origin里的图层概念比背步骤有用在Origin里一个图形窗口(Graph)可以包含多个图层(Layer)。每个图层有自己的坐标系、数据绘图对象和坐标轴属性。默认情况下新建一个图形窗口里面只有一个图层就是声明为Layer1的那个坐标系。理解这一点之后双x双y图就很好拆解了你需要在这个图形窗口里放两个图层Layer1使用下X轴和左Y轴Layer2使用上X轴和右Y轴并且让两个图层在物理位置上完全重叠。Layer2的背景、边框、坐标轴刻度都要做透明或者隐藏处理只保留你想露出来的上X轴和右Y轴。很多人卡住的地方是明明加了新图层第二条曲线却跑到图外或者四根轴全挤在一起看着就像图层“漂移”了。这就是因为Layer1和Layer2的Position参数不一致。后面我会专门讲怎么把图层位置锁死。1.3 动笔前必须先定的三件事一是把工作表里的列属性设置好哪一列是X、哪一列是Y必须明确。选中列右键Set As X或者Set As Y这是所有绘图动作的前提。二是确定两个X轴的范围。要不要让上下两个X轴的物理映射完全一致如果第一层X轴范围是0到100第二层X轴范围是500到800那么两条曲线画在同一个矩形区域里时各自按自己的范围分布这在视觉上没问题但读图的人容易误以为上下刻度是对应的。如果你希望两组数据在某一段上能“对得上”就需要手动把两套X轴的From/To调成一致或者用坐标轴链接关系去换算。三是确定颜色方案。双x双y图最怕读图人找不到哪条线对应哪根轴。我的习惯是第一组数据用黑色对应的下X轴和左Y轴也是黑色第二组数据用红色对应的上X轴和右Y轴用红色。这样视线能顺着颜色把对应关系找全省得在图上加一堆箭头。2. 数据准备和坐标轴映射方案选择2.1 工作表里把数据排成能直接画图的样子双x双y图的数据排布和普通多曲线图不太一样普通多曲线图通常是公共X列后面跟好几列Y只画一层坐标系。双x双y图如果涉及两组独立自变量建议直接排成“X1、Y1、X2、Y2”这样的并列结构。比如你现在有一个实验横轴A是电压对应的响应值B另一组横轴C是电流密度对应的响应值D。那么在工作表里就放四列列A列B列C列DXYXY电压响应值1电流密度响应值2画第一组的时候选中A、B两列画第二组的时候不要把C、D单独拖进去那样会脱离图层管理机制直接变成杂乱线条。正确做法是把C、D先放入Layer2的内容列表而不是放回Layer1。因为第二组数据要用右侧Y轴和顶部X轴来读所以C列会被关联到Layer2的下X轴——在下层但你实际上希望它显示在上X轴这时候就要检查Layer2的坐标轴属性把不需要的下X轴和左Y轴隐藏只打开Top X和Right Y。这些操作不复杂但顺序错了后面会非常难受。对于公用X轴的情况也就是两组数据只有Y不同X是同一套那么工作表里可以只放一列X加两列Y绘图的时候把两列Y分别指定到不同图层即可。这也是Origin里常见的一种做法。2.2 同一个数据要显示两套单位用坐标轴链接而不是硬叠图层如果遇到“曲线只有一条但上下两个X轴分别是波长和能量”这类需求千万别去复制一份同样的曲线再叠图层。正确的方式是直接在同一个图层里启用上X轴并设置坐标轴链接关系。操作路径是先双击上X轴或者打开Axis对话框在Title Format选项卡里把上X轴的Show Axis勾选上。然后在Link Axes选项卡里把Top X Axis的链接方式设为Custom或者Straight Line Mapping让它和Bottom X Axis建立换算。如果换算关系是线性的比如上X轴 下X轴 × 系数 偏移量用Straight Line Mapping就能解决直接填入两个对应点的坐标即可。如果是E1240/λ这种反比例关系Origin里可以写公式转换在Tick Labels选项卡的Display里选择自定义Formula把对应的换算关系写到列值转换表达式里。有些人问能不能直接把底部X轴的数据先算成能量值再做一条隐藏的曲线让上X轴的刻度去对应它这种做法相当于曲线画了两遍拖拽、改样式时特别容易漏改一条我踩过坑后来坚决用坐标轴链接。好处是数据只存在一份改起来不会出双份问题。2.3 找模板还是手动加层别死磕菜单路径Origin在不同的版本里模板入口变化很大。比如Graph菜单下的Multi-Panel/Multi-Y Axis里可以找到Double Y轴模板但真正的Double X/Y模板不一定在这个子菜单里。有的版本在Plot菜单的Ternary/3D 分类下面有的需要从File-New Graph的模板库里找。与其背路径不如掌握手动加层法哪个版本都通用。手动加层的基本流程是先正常画好第一组数据的图然后在图形窗口左上角会看到一个灰色小方块里面写着数字1这就是图层图标的入口。右键这个小图标或者右键图表空白区域找到Layer Management点击Add按钮选择添加一个Top X Right Y的新图层。这样Layer2就叠加到了Layer1上接下来只需要把第二组数据填进Layer2再把坐标轴细节调整好一张双x双y图就成型了。模板的好处是省事缺点是设置完还要改数据、改轴反而不如手动加层可控。我现在除非是画批量重复的图否则都用手动加层。3. 从零到一的完整实操流程3.1 先把第一组数据画成主图样式基础打好选中工作表里的X1和Y1两列点击底部工具栏的Line or Scatter按钮先画出一条主曲线。我一般先把线宽设为2符号设为空心圆方便后面叠加第二组数据时视觉上有主次。画完之后先别急着加第二层先把第一层的坐标轴标题、刻度范围、字体大小都调整好。双击X轴或者Y轴打开Axis对话框在Title选项卡里输入下X轴的名称和单位比如“Temperature (℃)”在Scale选项卡里把From和To手动设定一下不要让它Auto生成一个特别散的区间。这一步做好后面第二层数据加进来的时候你才有参照系。图层图标那里可以确认当前是Layer1坐标轴范围就是为第一组数据服务的。3.2 添加第二图层并把第二组数据放进去右键图形左上角的图层图标写着1的小方块打开Layer Management。点击Add按钮在新层属性里选择Top X Right Y。这样Layer2就会创建出来并且默认尝试与Layer1对齐。接下来右键图层图标此时它变成一个小方块里写着2继续选择Layer Contents弹窗里会显示工作表中的可用列把X2和Y2选中点击中间的箭头加入到右边Content列表里。确认关闭后你就能看到第二组曲线出现在图中了但这时候它可能用的是Layer2的默认轴线也就是下X和右Y。这时再双击上X轴或者右Y轴打开Axis对话框确认Layer2的Top X和Right Y处于显示状态把Layer2的下X轴和左Y轴设为隐藏。你不需要删除它们只要在Title Format里把Show Axis取消勾选就行。这样视觉上就只剩下四条轴分别属于两组数据。有个关键的细节如果第二组曲线的X范围与第一组完全不同比如Layer1的X轴是0到100Layer2的X轴是0到500两条曲线虽然画在同一个图区但刻度映射是按各自范围来的。读图时你只能靠上下X轴各自的刻度去判断数据大小不能认为同一个竖直位置上的两个X轴数值应该相等。如果希望它们位置对齐比如都是0到100那就手动把Layer2的X轴From/To改成和Layer1一致否则系统会自动按“显示漂亮的刻度”来生成范围。3.3 调整四根坐标轴的刻度、标题和颜色坐标轴细节是决定这张图专业度的分水岭。双击任意坐标轴打开Axis对话框左侧导航栏里会列出Layer1和Layer2各自的Bottom、Left、Top、Right轴。分别选中Layer2的Top X在Title选项卡里输入上X轴标题比如“Energy (eV)”在Tick Labels选项卡里调整字体、字号和显示格式在Scale选项卡里修改范围。Layer2的Right Y轴同样操作输入对应的Y轴标题。给坐标轴加颜色这一点很多人忽略。我的做法是在Axis对话框的Title Format选项卡里把Axis Position和Color一起设置。把Layer2的Top X和Right Y轴线条颜色改成跟第二组曲线一致比如红色再把第二组曲线的线色也改成红色。这样整张图的信息层级就非常清楚黑色曲线对应下部X轴和左部Y轴红色曲线对应上部X轴和右部Y轴读者零成本读图。别忘记处理刻度线方向。默认刻度线是朝外的双坐标轴图里上X轴刻度线建议朝内这样不会跟下X轴的刻度标签形成视觉干扰。同样可以在Axis对话框的Tick Labels或者Tick Lines选项卡里设置。3.4 图例横向排列、特殊符号加横线、字体统一图例默认是多行竖向排列双x双y图同时叠放两层数据后图例文字一多就占地方。想让它横向排列右键图例选择Properties在Graphical选项卡或者Pattern选项卡里找到Layout属性把Columns设置为2或者更多图例就会根据列数重排为横向。如果还带有多余的黑色边框可以在Pattern选项卡里把Frame设为None或者调整背景色。关于坐标轴标题里加特殊符号最常用的是在“温度”这类文本里加希腊字母最简单的方法是右键文本对象在编辑状态下点击工具栏上的希腊字母按钮或者按CtrlM直接打开符号映射窗口。如果只是想在“x”上面加一条横线表示平均值多数版本支持从文本工具栏里找“Overbar”或者“Underscript”这类按钮找不到的话直接从文档里复制Unicode字符“x̄”过来也能正常显示。这个方法适用于所有版本处理均值符号时非常方便。字体统一问题最直接的办法是在Tools菜单下打开Options在Graph选项卡里把Default Font改成统一字体比如Arial或Times New Roman。改完之后新建图会用新字体但当前已存在图里的文字需要全选后手动替换。选中所有文本对象最合实操的方法是按CtrlA选中图内全部对象再在文本工具栏里改字体。改完一定要检查上下标的特殊符号没有被替换成乱码。3.5 再给已有图形加新数据以及锁定横纵坐标比例如果你已经画好了双x双y图后来又拿到一组补充数据不需要从头再来。右键对应图层的图层图标打开Layer Contents把新的数据列添加到该图层Origin会自动分配曲线样式。如果新数据的量纲不一样需要去Axis对话框里新建一个右侧Y轴甚至右侧X轴再调整范围。关于横纵坐标比例的问题有时实验数据本身变化范围很小但Origin默认把Y轴从0开始导致曲线被“压扁”在底部一条线。双击Y轴在Scale选项卡里把From修改成比数据最小值略低的值而不是从0开始曲线就能展宽。若要让横纵坐标的物理长度保持固定比例在Format菜单下打开Layer Properties进入Size/Speed选项卡勾选“按比例缩放”或者手动设置X轴和Y轴长度分配这样导出后图形不会变形。还有一种常用到的情况是希望绘图区整体锁定成正方形或保持某个宽高比。同样在Layer Properties里设置Width和Height的相对比例之后任意拖动窗口大小图层的坐标轴比例都会被锁住。4. 高频问题排查与细节避坑4.1 第二个图层一加整个图全乱了怎么办这是双x双y图新手最常见的崩溃瞬间。症状很典型Layer2刚添加完坐标轴位置乱跳两条曲线不在同一个矩形区域里甚至第二条曲线完全看不见。先确认数据列是否进了正确的图层。右键图层图标打开Layer Contents看Content列表里是否出现了第二组数据列。如果没进去曲线不会显示如果进去了再看Layer2的坐标轴范围是否和数据的量纲匹配。如果X2数据是几万量级而Layer2默认X轴范围是0到100曲线当然超出视野外。把Layer2的X轴和Y轴Scale都改成Auto或者手动调整到数据覆盖范围曲线就会出现。如果曲线显示正常但两个图层物理位置错开去Layer Management里选中Layer2查看它的Position参数把Layer2的Left、Top、Width、Height改成与Layer1完全相同。比如Layer1可能是Left1, Top1, Width6, Height5Layer2默认可能也是这套参数才对但如果被别人拖动过就会变成别的值。改成一致后两个图层就严格重叠了。4.2 打开Origin文件显示“没有窗口显示”这个问题在我帮别人远程处理时遇到过发烧友里也有不少中招的。打开一个以前保存的opju或者opj工程文件Project Explorer里能看到Graph名称但屏幕上就是找不到图。优先在View菜单下找到Window List看看Graph是不是处于隐藏状态。如果列表里能看到这个窗口右键选择Activate或者双击它窗口一般就会重新显示出来。如果连Window List都不显示可能是窗口被拖到了屏幕外的虚拟桌面常见于曾经外接双显示器后拔掉显示器再打开工程。解决方法是把Graph窗口拖回可视区域或者在Window菜单里使用窗口重排功能。如果上述不行很可能是这个opju文件里图形窗口的显示状态坏了。稳妥的办法是去Project Explorer里找到源数据表重新选中列直接再画一张新图。所以平时保存工程文件时我会刻意保留原始工作表不做删除操作这样图坏了还能重新生成。4.3 两条曲线量级差太大右轴显示不出来双x双y图里两组数据的Y值可能差好几个数量级。比如左边Y轴最大值是100右边的Y值到了100000。这种情况下如果Layer2的右Y轴范围没设置好右轴刻度可能挤在一端第二组曲线看起来是一条贴边的直线。处理方式是在Axis对话框里选中Layer2的Right Y轴把Scale选项卡里的From/To手动调到你数据的合理范围。如果想让它自适应直接选Auto再回图里看曲线的形态。要注意“Auto”有时候会包含特别极端的离群值导致有效信号被压缩这时候可以手动设定起点和终点。若曲线还是贴边检查数据里是否有异常大的值把它剔除或设为断裂轴。4.4 出现DEMO水印这个水印问题在很多搜索引擎里被问到说明确实不少人遇到了。出现DEMO字样意思是当前Origin处于未经正式授权的试用/演示模式。这属于软件授权问题不是绘图操作问题不能通过在某个配置里写参数或者删文件的方式把它“变没”。真正能解决问题的路径是如果你所在高校或公司购买了正版授权去学校信息化部门或公司的软件管理平台用正版序列号完成激活如果没有授权可以去官网申请官方试用版试用期内不会出现水印。总之不要试图去找破解补丁或密钥生成器这不仅可能导致Origin闪退、工程文件损坏还可能有信息安全风险尤其是下载到来路不明的“crack文件”我见过太多人因此中招。正规试用或校园授权是唯一稳妥的路。4.5 导出图片模糊、字体跑偏论文投稿对图片清晰度要求高导出时别直接截图。在File菜单下选择Export Graphs打开导出对话框确定需要的格式。常用设置是TIFF格式分辨率300dpi或600dpi色彩模式CMYK或RGB根据投稿要求来。尺寸上建议把Image Size的单位固定成centimeter或者inch不要让它随分辨率变来变去。这样导出后插到Word或LaTeX里字体边缘不会发虚。如果导出后发现字体变了大概率是导出设置里勾选了“使用字体替代”。在导出对话框的Options里把字体嵌入相关选项打开或者统一把图内字体改成常用的Arial或Times New Roman不选系统没有的特殊字体能大幅降低字体跑偏概率。5. 关于双x双y图我个人的几个习惯前面这些操作细节都是我一张一张图磨出来的。最后分享几个我平时一定会遵守的小习惯不一定适合所有人但确实帮我少踩了很多坑。第一颜色跟着轴走。新加图层和坐标轴时先把Layer2的Top X和Right Y轴颜色改成第二组曲线的颜色然后才去设置标题格式。这样整张图从头到尾的信息对应关系都很清晰哪怕隔了半个月再回来看这张图也能秒懂当时画的是什么。第二重要图一定要保存模板。调好一张满意的双x双y图后在File菜单里选择Save Template As把轴设置、线型、图例位置、字体都存下来。下次画同类数据时新建图直接选这个模板只需要替换数据十分钟能完成以前磨半小时的活。这个习惯帮我应付了很多组会前的赶图任务。第三保留一份带原始工作表的opju源文件。导出给导师或期刊的图只是成品但源文件才是能改的“活”东西。投稿后审稿人要求把某个轴的标题改小一号或者把图例改成两列没有源文件就得全部重画有了源文件就是两分钟的事。第四双x双y图能少用就少用。这不是反对这个图而是它确实信息密度高读图门槛也高。如果两组数据之间没有强关联并不需要硬塞进同一个图区分开放两张图或者一起摆在双面板里更清楚。真正需要时双x双y图能把这种关联关系讲得很漂亮但前提是你把四根轴都收拾利索了。组会前检查自己的图时我会再从头到尾把四根轴量一遍标题有没有单位范围有没有被自动截断两条曲线的颜色是否跟坐标轴对应。检查完这几项丑图至少少一半。