ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

学术: 学术论文的科研绘图

学术: 学术论文的科研绘图 【学术】学术论文中的科研绘图1. 图的布局字体、字号问题1.1 从图最终怎么用倒推1.2 从子图最终怎么用倒推1.2.1 需要使用PowerPoint绘制的流程框图fig11.2.2 需要使用python绘制的折线图fig21.3 最后的组装附录单位换算字体的安装一些有用的网站最近一段时间自己尝试主导、参与了一些学术论文发表的一些工作其中对于一个尚未发表过较高质量论文的科研新手来讲学术论文中的科研绘图是一个需要用心摸索的一项能力这里面涉及到一些技术层面的东西如powerpoint, pdf, png, 矢量图也涉及到一些taste层面的东西往深了追可能就涉及到审美、艺术了哈哈现在自己还达不到。但是经过历练自己对一些新手常见的问题图为什么插入论文后这么糊字体字号总感觉不舒服从0到1这个布局总是把握不好等等这些层面也有了一些心得特此记录下来。后续再慢慢补充添加。1. 图的布局字体、字号问题1.1 从图最终怎么用倒推一般投稿的会议或者期刊的官网都会提供latex工程模版。论文的正文区域(宽x inch, 高y inch)这个参数可以通过官方模版获得例如iclr2027的官方模版中的iclr2027_conference.sty文件中有相关参数的说明\textheight9.0truein% Height of text(including footnotesfigures)\textwidth5.5truein% Width of text line.如果在最终插图使用的时候不想整个图片完全占据所有可用宽度可以通过调节一个scale因子来给左右流出一点space增加一点呼吸感。\includegraphics[width0.95\linewidth]{figure.pdf}如果这里的scale因子是0.95那么这幅图片呈现的时候width就会是5.5*0.955.23inch。总之本着不压缩图片的原则根据上面的内容可以推算出我们在绘制插图的时候图片尺寸应该也为5.23inch左右这样在绘图软件上例如PowerPoint前提是这边要在绘图之前通过“设计—幻灯片大小–自定义幻灯片大小”看到的效果就是我们插入overleaf中渲染出来的效果。举一个实际的例子我现在想将两个子图拼成一个大图。第一个子图是一个流程框图第二个子图是有两个折线图共同组成因为它们共享legend因此放在一起不再单独拆分。所以大概是\begin{figure}[t]\centering\begin{subfigure}{0.32\linewidth}\centering\includegraphics[width\linewidth]{fig1.pdf}\caption{...}\end{subfigure}\hfill\begin{subfigure}{0.64\linewidth}\centering\includegraphics[width\linewidth]{fig2.pdf}\caption{...}\end{subfigure}\caption{...}\end{figure}1.2 从子图最终怎么用倒推1.2.1 需要使用PowerPoint绘制的流程框图fig1显然fig1的width尺寸为0.32 × 5.5 × 25.4 44.704mm 4.47cm。因此在绘图之前先要通过设计-幻灯片大小-自定义幻灯片大小将幻灯片宽度设置为4.47cm。字体用什么这个有一定的争论有的人建议对于ppt使用Arial而非Times new roman。这个最好还是看下官方模版是否有提及例如ICLR2027的模版有提到Times New Roman is the preferred typeface throughout.因此在绘图的时候除非特殊情况我一般还是使用Times new roman。字号用多少正文的字号一般都是被官方模版限定死的ICLR2027设置的是10pt。但是图片上的文本大小倒是没有做说明。但一般为了视觉效果不至于太小也不至于太大一般建议范围是7~10pt之内。在这个范围内可以根据图中的不同层次意义进行选择再有就是结合图的内容和图的大小限制。流程图的框用多大字体Times New Roman 字号8 pt 上边距0 下边距0 左边距0 右边距0 根据文字调整形状大小✓先按照上述设置获得自然状态下的文字尺寸然后在此基础上增加padding。这个padding根据自己的实际情况来设置比如0.1, 0.15, 0.2都行统一即可。然后再选出在这幅图中所有宽和高的最大值然后再去除根据文字调整大小采用人工设置尺寸的方式。排列、对齐用起来如果排列完之后发现宽度超越了ppt的尺寸则返回字体可以将字体在7~10pt的范围内进行缩小。如果放小字体也无法合适则要么调整框图的设计布局要么就在overleaf的层面增大该子图的缩放因子比如从0.32增大到0.4等。流程图中的箭头箭头和方框线的宽度pt都选择为0.75pt吧颜色最后可以再给框图上一些颜色这里包含填充颜色和框的颜色。1.2.2 需要使用python绘制的折线图fig2fig2的尺寸我们一开始已经确认fig2的宽度是8.94厘米它的高度通过与fig1对齐来获得。fig1的pdf一般会经过一个crop操作在crop之后我们可以将最终的pdf转换为png这样可以根据分辨率获得准确的长宽比pdf2png网站推荐从而获得fig1的高度为3.22厘米。8.943.22在python语言中会再将其转换为inch因此绘图时figsize (8.94 / 2.54, 3.22 / 2.54)。字体用什么Times New Roman也用这个吧。1.3 最后的组装再overleaf这个层面组装\begin{figure}[t]\centering %(a)Left: flowchart\begin{subfigure}[t]{0.32\linewidth}\centering\includegraphics[width\linewidth]{figures/left_figure.pdf}\caption{}\label{fig:convergence}\end{subfigure}\hfill %(b)Right: training curves\begin{subfigure}[t]{0.64\linewidth}\centering\includegraphics[width\linewidth]{figures/right_figure.pdf}\caption{}\label{fig:evolution}\end{subfigure}\caption{xxx.}\label{fig:optimization_analysis}\end{figure}附录单位换算1inch25.4mm1inch72pt字体的安装可能会遇到RuntimeError: Times New Roman is not installed or not visible to matplotlib.github上找一个然后再代码中指定对应路径即可。一些有用的网站pdf裁剪的网站https://www.ilovepdf.com/pdf转换为png的网站https://cloudconvert.com/pdf-to-png
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进