Loren谈MATLAB的艺术

将想法转化为MATLAB

请注意

Loren谈MATLAB的艺术已存档,不会更新。

制作漂亮的图表

今天我要介绍一位客座博主,Doke二郎(邮箱:Jiro.Doke@mathworks.com),他是The MathWorks的一名应用工程师。他在他的生活中使用MATLAB在MathWorks之前,和他的一个
兴趣是数据可视化。

内容

在我的研究生工作中,我广泛使用MATLAB进行分析和可视化。很多时候,我创造的情节
用于我的出版物。就在那时,我开始探索Handle Graphics自定义MATLAB的灵活性
以创建出版质量的图形。最终,我几乎只能用MATLAB来画我的图。

让我一步一步地告诉你我是如何做到的。我使用了一些编造的数据,但情节非常相似
到我为我的研究生成的图像。

加载数据

首先,您可以下载数据

负载数据

创建基本情节

首先,我绘制数据以创建粗略的可视化

图(“单位”“像素”...“位置”, [100 100 500 375]);持有;hFit = line(xfit, yfit);hE = errorbar(xdata_m, ydata_m, ydata_s);hData = line(xVdata, yVdata);hModel = line(xmodel, ymodel);hCI(1) = line(xmodel, ymodel);hCI(2) = line(xmodel, ymodelU);

调整线路属性(功能性)

接下来,我对我的情节进行第一轮修改。在这一点上,我还不担心美学。

集(hFit,...“颜色”, [0 0 .5]);集(他...“线型”“没有”...“标记”“。”...“颜色”,(。3..3..3.] ); set(hData ,...“线型”“没有”...“标记”“。”);集(hModel,...“线型”“——”...“颜色”“r”);集(hCI (1),...“线型”“-”。...“颜色”, [0.5 0]);集(人机交互(2),...“线型”“-”。...“颜色”, [0.5 0]);

调整线条属性(美学)

为了提高它的发布质量,我对行属性做了以下更改,包括错误条宽度。在
在我看来,使用更粗的线条和更大的标记可以极大地改善图像的“外观”。这是非常主观的,但是
我根据图表上的数据量来选择它们。我选择了适当的“拥挤度”(黑白空间的平衡):

集(hFit,...“线宽”, 2);集(他...“线宽”, 1,...“标记”“o”...“MarkerSize”, 6,...“MarkerEdgeColor”,(。2.2.2] ,...“MarkerFaceColor”,(。7.7.7] ); set(hData ,...“标记”“o”...“MarkerSize”, 5,...“MarkerEdgeColor”“没有”...“MarkerFaceColor”,(。75.751] ); set(hModel ,...“线宽”, 1.5);集(hCI (1),...“线宽”, 1.5);集(人机交互(2),...“线宽”, 1.5);%调整错误条宽度hE_c =...get(他“孩子”);errorbarXData =...get (hE_c (2),“XData”);errorbarXData(9:结束)=...errorbarXData(1:9:end) - 0.2;errorbarXData(七章:结束)=...errorbarXData(1:9:end) - 0.2;errorbarXData(9:结束)=...errorbarXData(1:9:end) + 0.2;errorbarXData(9:结束)=...errorbarXData(1:9:end) + 0.2;集(hE_c (2),“XData”, errorbarXData);

添加图例和标签

没有很好地注释的情节是不完整的。

hTitle = title (“我的出版物-高质量图形”);hXLabel = xlabel(的长度(米));hYLabel = ylabel(的质量(公斤));hText = text(10,800,...sprintf ('\\it{C = %0.1g \\pm %0.1g (CI)}'...c, cint (2) - c));hLegend =传说(...[hE, hFit, hData, hModel, hCI(1)],...'Data (\mu \pm \sigma)'...'Fit (\it{C x^3})'...验证数据的...'模型(\it{C x^3})'...95%置信区间的...“位置”“西北”);

调整字体和轴的属性

由于许多出版物都接受EPS格式,所以我选择PostScript和Ghostscript支持的字体。金宝app的东西
不支持的金宝app将被Courier替换。我还定义了标记位置,特别是当默认值太拥挤时。

集合(gca,...“字体名”“Helvetica”);set([hTitle, hXLabel, hYLabel, hText],...“字体名”“先锋”);set([hLegend, gca],...“字形大小”, 8);set([hXLabel, hYLabel, hText],...“字形大小”, 10);set(hTitle,...“字形大小”, 12,...“FontWeight”“大胆”);集(gca),...“盒子”“关闭”...“TickDir”“出”...“TickLength”,(。02.02] ,...“XMinorTick”“上”...“YMinorTick”“上”...“YGrid”“上”...“XColor”,(。3..3..3.],...“YColor”,(。3..3..3.],...“YTick”0:500:2500,...“线宽”, 1);

导出至EPS

我设置PaperPositionMode以使导出的图形看起来与屏幕上的一样。

集(gcf,“PaperPositionMode”“汽车”);打印-depsc2finalPlot1.eps关闭;

后处理

看起来很棒!我可能想要改变的一件事是虚线和虚线的外观。注意这些点
太小了。因此,我编写了一个简单的函数,进入EPS文件并修改行定义。我已将
函数,fixPSlinestyle,在文件交换。

fixPSlinestyle (“finalPlot1.eps”“finalPlot2.eps”);

就这样。我已经自动化了创建出版质量图形的过程。处理图形为您提供图形外观的高级控制。如果你不知道,MATLAB允许你快速获取MATLAB脚本
并发布格式化报告(HTML, Word, LaTeX, XML, PPT),其中的数字自动转换为各种图形格式,
包括每股收益。本文档是使用发布

你的例子

告诉我们在这里关于你用Handle Graphics做的一些很酷的事情,让你的图形看起来更漂亮。

发布与MATLAB®7.5

|