origin matlab CDR画图,无数据作图,绘图,无数据做图,流程图,结构图,复杂科研...
origin matlab CDR画图无数据作图绘图无数据做图流程图结构图复杂科研图复原提取数据无论曲线还是直线还是柱状图点状图都可以提取数据复原基本做到一模一样 甚至是手绘图高糊图都可以复原制作谁懂啊家人们做科研最折磨的环节除了跑数据改论文就是画图和复刻别人的图了——要么是手里没原始数据只能对着别人的SCI图硬抠要么是要画个漂亮的流程图结构图要么就是纯纯无数据要出个示意性的科研图。我平时常用的工具无非就是Origin、Matlab偶尔救急还会用CDRCorelDRAW这仨组合起来几乎能搞定所有科研绘图需求不管是正经实验图还是概念示意都能拿捏。先说最头疼的复刻别人的图吧毕竟很多时候审稿人或者老板给你一张图让你复刻一模一样的手里却没有原始数据不管是曲线、直线、柱状图还是点状图甚至是糊成马赛克的手绘图都能搞定。给大家整个低配版的提取数据脚本用Matlab就能直接跑% 导入要提取数据的目标图片替换成你的图片路径就行 img imread(sci_plot.png); figure(Name,抠图专用); imshow(img); hold on; disp(按顺序点坐标轴原点 → X轴右端点 → Y轴上端点再挨个点所有数据点); % 先定好坐标轴的基准 origin_xy ginput(1); x_axis_end ginput(1); y_axis_end ginput(1); % 点取所有需要提取的数据点 raw_pts ginput; % 把像素坐标转换成真实的坐标轴数值这里假设X轴范围0-10Y轴范围0-5自己改参数 x_real (raw_pts(:,1)-origin_xy(1))/(x_axis_end(1)-origin_xy(1)) * 10; y_real (raw_pts(:,2)-origin_xy(2))/(y_axis_end(2)-origin_xy(2)) * 5; % 导出提取到的数据方便后面导入Origin画图 writetable(table(x_real,y_real),extracted_data.csv); % 直接画复原后的图看看效果 figure(Color,w); plot(x_real,y_real,o-,LineWidth,1.2); title(复原后的实验图); xlabel(X轴); ylabel(Y轴);这段代码其实就是个简化版的WebPlotDigitizer适合应急用——比如你不想装额外的软件直接用Matlab自带的工具就能抠。我上周刚帮师弟抠了一张他老板给的高糊散点图原图是个带拟合线的细胞活性实验图他自己折腾了半天都没弄明白我把原图导入之后按步骤点了几个基准点和散点不到十分钟就把数据抠出来了导入Origin重新画了一遍连拟合曲线的趋势、误差棒的长度都和原图几乎一模一样。origin matlab CDR画图无数据作图绘图无数据做图流程图结构图复杂科研图复原提取数据无论曲线还是直线还是柱状图点状图都可以提取数据复原基本做到一模一样 甚至是手绘图高糊图都可以复原制作要是手里连个具体的实验数据都没有纯纯要画个示意性的图比如能带结构图、实验流程示意图直接用Matlab或者Origin就能撸出来。比如这段代码画的纯示意能带图连真实实验数据都没用到% 纯无数据画能带结构示意 figure(Color,w); hold on; box on; x linspace(0,3,100); % 手动调参数画三条能带曲线改改就能得到不同的形状 y1 0.5*sin(2*pi*x) 1; y2 0.3*cos(2*pi*x) 2; y3 0.7*sin(pi*x) 0.5; plot(x,y1,k,LineWidth,1.5); plot(x,y2,k,LineWidth,1.5); plot(x,y3,k,LineWidth,1.5); % 加费米能级虚线 plot([0,3],[1,1],k--,LineWidth,1); text(2.8,1.1,E_F,FontSize,12,HorizontalAlignment,right); % 改坐标轴刻度对应高对称点 set(gca,XTick,[0,1,2,3],XTickLabel,{Γ,X,M,Γ}); ylim([0,3]); title(示意性能带结构图);上次老板让我画个量子点的能带结构示意我就改了改sin和cos的参数半个小时就出了图比找别人要原始数据快多了而且看起来还特别专业。至于流程图和结构图我平时分两种情况如果只是单个的汇报用图直接用Origin的内置图形工具拖拖拽拽就行框和箭头随便改大小颜色对齐也方便如果要批量做很多个一模一样的就用Matlab的patch和annotation函数写脚本改改坐标和文字就能一键生成不会出现每个框都歪歪扭扭的情况。比如这段极简流程图的代码% 画科研流程示意框图 figure(Color,w); axis off; % 画三个流程框 patch([0 2 2 0],[3 3 4 4],w,EdgeColor,k,LineWidth,1.2); text(1,3.5,原始数据,FontSize,12,HorizontalAlignment,center); patch([3 5 5 3],[3 3 4 4],w,EdgeColor,k,LineWidth,1.2); text(4,3.5,数据处理,FontSize,12,HorizontalAlignment,center); patch([6 8 8 6],[3 3 4 4],w,EdgeColor,k,LineWidth,1.2); text(7,3.5,最终出图,FontSize,12,HorizontalAlignment,center); % 加箭头连接 annotation(arrow,[0.2,0.3],[0.75,0.75],LineWidth,1); annotation(arrow,[0.5,0.6],[0.75,0.75],LineWidth,1);另外如果要画那种特别精细的矢量结构图比如化学结构式、芯片版图我还会用CDRCorelDRAW拖拖拽拽就能搞定导出的矢量图放到论文里完全不会糊比用Matlab画方便太多。最绝的是那种手绘图和高糊图的复原比如导师当年手绘的实验设计图拍了照片之后糊得不行你可以先导入PS调一下对比度然后用刚才的Matlab代码抠点或者用WebPlotDigitizer这类专门的软件把高糊的图转成清晰的矢量图再导入Origin或者Matlab里改改细节就能变成能放进论文里的正规图了。上次我把一张导师手绘的电泳图复原连条带的亮度都调得和原图差不多导师都以为我找到了当年的原始数据。最后给大家提几个实用的小tips不管用什么工具画完图一定要导出矢量图eps、pdf这类别导出jpg/png不然放进论文里会糊成马赛克如果要复刻别人的图最好先礼貌问一下作者要原始数据实在要不到再用提取数据的方法还有如果是画非常精细的结构图CDR会比Origin和Matlab更顺手。