科研画图都用什么软件?

共 2389字,需浏览 5分钟

 ·

2021-09-27 00:12

点击上方视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达


来自 | 知乎 

https://www.zhihu.com/question/29557377

编辑 | AI有道 

本文仅作学术分享,若侵权,请联系后台删文处理


在看一些文章的时候,经常感觉有些概念图画的非常精致漂亮,但是不知道是用什么软件画的,各位大神都习惯使用什么样的软件呢?

作者:丁香学术
https://www.zhihu.com/question/29557377/answer/489326809
来源:知乎


可以用 AI,也就是 Adobe Illustrator 画图,尤其是有些自科文章里面的细胞图,信号通路图之类的。


比如这样的图



我们打开软件后选择左边的「铅笔工具」,先从画线粒体开始,描出大致形状后可在图形选中的情况下修改线条,一直改至线条圆滑为止(初步看还是较为满意滴)。



然后我们选择左侧「填色」,对颜色进行填充;首先选中图形,双击左侧「填色板」,调出「拾色器」,选择合适的颜色分别填充线粒体外膜和内膜,再将内膜移至外膜内(此时一个像样的线粒体就初步完成啦)。



接着通过「Ctrl+C」和「Ctrl+V」将已完成的线粒体复制两份,并旋转方向,如果此时觉得图形较大,可以通过右击,选择「变换」,选择「缩放」,适当将图形缩小(以自己满意为主)。



接着我们再进行画椭圆,选择左侧「图形工具」,本次选择「椭圆工具」,画好椭圆后将其填充为淡紫色。



然后将椭圆形移至线粒体附近,此时由于处于不同图层,因此椭圆可能位于线粒体上方,别着急,此时只需右击,选择「排列」,「置于底层」,即可将椭圆形的位置置于底层。



接着我们还是选择「铅笔工具」,将最外层的边框画好,然后加粗边框的线条;选择「描边」,选择 4 pt 粗的边框,接着将颜色填充好,将边框置于所有图层的最底层。



初步看大致轮廓已经构建好了,接着我们将各项补齐,然后再添加文字,文字添加也很简单,选择「文字工具」,在小边框里将文字添加,然后移至图中对应位置。



加完文字后接下来就是上升下降的箭头了,选择左侧「直线段工具」,添加直线后右侧点击「描边」,调出添加箭头的选项,默认的箭头过大,此时下方可进行缩放,将其缩放为 30%,此时完成箭头的添加;如果需要将直线变为虚线,则只需在「虚线」框中打勾,则可完成。

需要画曲线的话,同样在左侧「直线段工具」中,长按,选择曲线。



接着添加转录因子,选择左侧的「圆角矩形工具」,将颜色填充为淡黄色,添加上基因名(一个转录因子由此生成,相当 easy)。



添加文字和曲线后我们的第一部分则已经完成,归纳起来就是描边,填充颜色,添加线条和文字,总体来说很轻易能完成,而第二部分的画法则与第一部分完全相同。



画完后,则一副高清晰度的配图就出现在我们软件里,随时导出则可以使用




作者:Pjer
https://www.zhihu.com/question/29557377/answer/1112077913
来源:知乎

这里讲讲数据驱动的科研画图,就是有数据出图。


软件主要是Python/matplotlib 和 MATLAB 偶尔偶尔万不得已了也得用一下IDL。

(评论区指出,常用的还应该有R/ggplot,origin)


存在这样一个现象,会有Python派的说MATLAB画图丑,也有MATLAB说IDL丑,总之没有任何一个科学数据绘图软件可以得到一致好评或者一致差评。其实有数据画图好不好看这事儿,还是看“定制化”的程度,定制化程度越高就会显得专业。所以不要批判哪个软件画图不好看,批判就是不会用~


比如,同样是MATLAB里, 稍微调一下axes位置,能组合组合一下,线的颜色粗细什么的。看起来就会好一些



但是如果直接一行

plot(x,y)


那画出来绝对看起来廉价,



也不好意思往文章里放。


其实axes调位置是每次画图都要占据大量时间的事情,不要用subplot默认排布,那个间距不大好看,能共用x或者y的时候就合并合并,看着舒服,比如:





刚才说到,定制化越高,图看起来越专业,其实这个定制化是需要时间投入和一定能力基础以及灵感的。


就我2019年的一篇ApJ里面的一张图当时想了很久都到底如何在同一张2d图里面显示出所有对应点的2种属性。最终想出来的解决方案是colormap也用2d,效果是这样的(MATLAB作图):



色温表示频率,亮度表示时标。所有点的两种属性就融合在同一张图里,趋势能体现的更明显,有利于我吧后面的物理机制讲清楚。


评论区有问2D颜色表如何实现,简单说一下:


核心是颜色映射,MATLAB里有个函数,

rgb_arr = hsv2rgb(hsv_arr)


可以用来建立从HSV色彩空间到RGB色彩空间的映射。在HSV色彩空间里H代表颜色相位也就是色温,S是饱和度,V是亮度。这里用H和V来表示两个物理量。先使用每个数据点的两个属性组织其HSV空间的颜色,然后hsv2rgb映射到rgb,散点图scatter的时候每个点指定上对应的rgb。最后colorbar就是在一个独立的axes里用imshow硬画出来的颜色表,

例子:

https://zhuanlan.zhihu.com/p/264137122





结:


各个画图工具都得会一点儿,因为门槛都不高,看一个例子就能上手,每个都会点儿就是图个效率,比如很多时候当整个工具链都在Python里的时候硬是用MATLAB画图就会很麻烦。


图画的好不好,专业不专业,取决于定制化程度


一张好的插图可以引导整篇文章的思路~


点个在看 paper不断!

浏览 3
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报