zoukankan      html  css  js  c++  java
  • 总结一下论文写作过程中的一些东西

    经过这么长时间的努力,终于发出去了一篇文章,不管最后结果如何,总算有了一点写作的经验了。这次写论文由于是第一次写,所以在这过程中还是有些东西需要来记录一下的,免得以后忘记。

    1、排版

      现在的论文基本上都要求用latex来排版了,用的比较多的是ctex,但是ctex也有些问题,出错后找错很麻烦,不能快速定位错误,后来师弟给推荐一个在线的latex,使用起来真的很方便,只需要申请一个账号就可以编写latex了,所以对于不想安装环境的人来说,无疑这是最方便的一种途径了;该网站的网址为www.texide.com,使用起来真的很方便。

    2、画图

      文章里对图片的要求还是比较高的,所以画图一般都用visio画图然后保存成pdf,然后再对pdf图片进行裁剪,插入就可以了。

      对于实验数据的处理和生成相关的图片要用matlab来画图,由于这次文章中主要使用的柱状图,所以就介绍一下画柱状图时的一些技巧。

    ① 如何在柱状图上添加误差线

     1 data = [5;6;7;8;9];     %柱状图的数据
     2 
     3 u = [0.5;0.3;0.3;0.2;0.6];   %实验测得的数据的最大值与平均值之间的差
     4 l = [0.2;0.3;0.1;0.4;0.5];   %实验测得的数据的最小值与平均值之间的差
     5 
     6 bar(data);    %显示柱状图
     7 set(gca,'xticklabel',{'1','2', '3', '4', '5'});  %设置横坐标刻度标识
     8 legend('test');       %设置图例
     9 ylabel('Value(ms)');    %纵轴标签
    10 xlabel('Results');            %横轴标签
    11 
    12 
    13 %接下的程序是显示误差线的
    14 hold on;
    15 numgroups = size(data, 1); % number of groups
    16 numbars = size(data, 2); % number of bars in a group
    17 groupwidth = min(0.8, numbars/(numbars+1.5));
    18     for i = 1:numbars
    19         x = (1:numgroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*numbars);
    20         handles.errors(i) = errorbar(x, data(:,i), l(:,i), u(:,i), 'm', 'linestyle', 'none');
    21     end

    程序中14~21行是显示误差线的,程序的运行结果如下图所示。

    如果只想显示上误差或者下误差可以根据errorbar函数的参数进行选择。

    如果想让每个横坐标刻度显示多个柱状图怎么做,其实也很简单,只需让上面程序中data每行出现多个数据,即变成m*n的矩阵,m是每组柱状中柱子的个数,例如下面是一个2*5的柱状图。

     1 data = [5,3; 6,2; 7,4; 8,6; 9,7];     %柱状图的数据
     2 
     3 u = [0.5,0.1; 0.3,0.3; 0.3,0.4; 0.2,0.5; 0.6,0.3];   %实验测得的数据的最大值与平均值之间的差
     4 l = [0.2,0.1; 0.3, 0.2; 0.1,0.3; 0.4,0.1; 0.5, 0.3];   %实验测得的数据的最小值与平均值之间的差
     5 
     6 bar(data);    %显示柱状图
     7 set(gca,'xticklabel',{'1','2', '3', '4', '5'});  %设置横坐标刻度标识
     8 legend('test1', 'test2');   %设置图例
     9 ylabel('Value(ms)');    %纵轴标签
    10 xlabel('Results');            %横轴标签
    11 
    12 
    13 %接下的程序是显示误差线的
    14 hold on;
    15 numgroups = size(data, 1); % number of groups
    16 numbars = size(data, 2); % number of bars in a group
    17 groupwidth = min(0.8, numbars/(numbars+1.5));
    18     for i = 1:numbars
    19         x = (1:numgroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*numbars);
    20         handles.errors(i) = errorbar(x, data(:,i), l(:,i), u(:,i), 'm', 'linestyle', 'none');
    21     end

    运行效果如下图:

    ② 如何使柱状图的横坐标倾斜显示

      当横坐标标识很长时,让其倾斜显示是一个不错的选择,在文章中也经常看到这样显示的图,这主要是用到了matlab中的函数“xticklabel_rotate”,这个函数可以在网上找到下载,例如下面的代码:

     1 data = [5,3; 6,2; 7,4; 8,6; 9,7; 4,5];     %柱状图的数据
     2 
     3 u = [0.5,0.1; 0.3,0.3; 0.3,0.4; 0.2,0.5; 0.6,0.3; 0.3,0.4];   %实验测得的数据的最大值与平均值之间的差
     4 l = [0.2,0.1; 0.3, 0.2; 0.1,0.3; 0.4,0.1; 0.5, 0.3; 0.1,0.1];   %实验测得的数据的最小值与平均值之间的差
     5 
     6 bar(data);    %显示柱状图
     7 xticklabel_rotate([1:6],30,{'result1','result2','result3','result4','result5','result6'},'interpreter','none');   %倾斜横坐标标识
     8 legend('test1', 'test2');   %设置图例
     9 ylabel('Value(ms)');    %纵轴标签
    10 xlabel('Results');            %横轴标签
    11 
    12 
    13 %接下的程序是显示误差线的
    14 hold on;
    15 numgroups = size(data, 1); % number of groups
    16 numbars = size(data, 2); % number of bars in a group
    17 groupwidth = min(0.8, numbars/(numbars+1.5));
    18     for i = 1:numbars
    19         x = (1:numgroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*numbars);
    20         handles.errors(i) = errorbar(x, data(:,i), l(:,i), u(:,i), 'm', 'linestyle', 'none');
    21     end

    显示效果如下:

    xticklabel_rotate([1:6],30,{'result1','result2','result3','result4','result5','result6'},'interpreter','none'); 
    上面这行代码就是调用现在的函数来实现横坐标标识倾斜的,需要注意的是红色字体6一定要与横坐标刻度的个数相同,否则将按默认标识显示,绿色字体30代表倾斜的角度。
    xticklabel_rotate函数的下载地址:http://www.mathworks.com/matlabcentral/fileexchange/3486-xticklabel-rotate/content//xticklabel_rotate.m

    note: 我用5组数据时,显示的结果有点问题,y轴的标注显示有点问题,如下图:

    这个问题使用在matlab产生的图片窗口,选择View —> Property Editor来进行拖动,可以对图片的任何属性进行修改,包括字体大小,坐标范围等等。

    3、论文纸张有A4变为letter

      现在很多国外的会议,一般都要求纸张是letter格式,而pdfletex默认纸张是A4,这样在提交时会检测到格式不符合要求,下面说一个简单粗暴的方法,把pdf纸张由A4变为letter。

      使用Adobe Acrobat的打印机功能,把A4纸张的pdf打印输出为letter格式,其中有几个属性设置一下,第一个是打印属性,选择纸张为Letter,第二是调整页面大小和处理页面里选择实际大小,如下图:

    这样就OK了!

  • 相关阅读:
    单行居中,2行居左,超过2行省略
    Angular2环境搭建
    数字保留2位小数
    结束循环函数
    获取元素的定位值
    $.extend
    node使用指南
    Telsa显卡比较
    Jupyter-notebook 不自动打开浏览器解决办法
    teamviewer连接未就绪的解决(Manjaro Linux)
  • 原文地址:https://www.cnblogs.com/blue163/p/5382190.html
Copyright © 2011-2022 走看看