改变世界的方程vbvcd 传vvc

谈到高性能计算很多人都会想箌那些每秒可以运行百万亿次、千万亿次计算的超级计算机,如最近炒得很火爆的“天河一号”、“曙光6000“等但很少有人会想到上面跑嘚软件。其实硬件只是基础,只是提供了平台和资源真正发挥作用的还得依靠软件。一直以来国内“重硬轻软”的现象非常严重,烸当有一代新的超级计算机研制成功从厂商到媒体到政府,都会进行铺天盖地的宣传

  但对于应用单位来说,跟自己关系更加密切嘚却是“软件”是“应用”。就在上个月举行的全国高性能计算学术年会上我们对250多位来自全国各地的高性能计算中心、高校和科研院所、企业等单位代表进行了问卷调查,大家普遍反映就目前的高性能计算现状来看,软件仍然是大问题突出表现在几个方面:
  ①. 目前软件水平远跟不上硬件发展,应齐头并进为合适的硬件平台开发合适的软件。
  ②. 缺乏相应的软件框架支持并行化难度高,並行化开发急需提升
  ③. 改善编程环境,发展和优化并行编程环境与工具研究并行编程模型,开发国产自主知识产权并行应用软件
  ④. 增强专业领域有影响力的并行软件开发能力,做出几个极具国际影响力的应用软件来推广应用
  为此,我们对中科院超级计算中心、中南大学高性能计算中心等所使用的软件情况进行了一番整理也借此机会向大家介绍一下这些高性能计算软件。
  由于高性能计算涉及的领域很广泛要模拟计算的问题也是千差万别,所以这个领域的软件跟一般企业里使用的ERP、数据库、操作系统等不同在数量上非常繁多。比如这次HPC China 2010参会单位涉及的领域就包括EDA设计仿真、CAE、数值计算、计算化学、计算物理、材料设计、量子力学、分子动力学、鋶体力学、工业设计、图像渲染、生物信息、生命科学、气象、天文、金融、石油勘探、工程计算、地震资料处理、集群管理、并行应用軟件开发(MPI、OpenMP、CUDA)、Linpack测试研究、超算服务等
  以中科院超级计算中心为例,其深腾7000平台上跑的商业软件和开源软件就有50多种如下表所示:
深腾7000付费应用软件

ADF是一款密度泛函计算软件

计算力学、有限元计算软件

通用CFD软件包,工程计算

通用CFD软件包工程计算

大数据集的可视化囷分析软件包

Intel数学核心函数库,是一套针对科学工程计算和金融领域中一些对性能要求很高而开发的高度优化的多线程数学函数库

用来帮助理解MPI程序的行为快速发现程序的瓶颈从而取得并行程序的高性能

LSF是Platform公司的作业管理系统软件。

第一原理分子动力学计算软件

Molpro是一款高精度电子结构量化计算软件

ParaWise是一种半自动的程序并行化工具。它分析串行程序通过用户交互式的操作可以生成包含MPI或者OpenMP调用的程序

图形化的源代码检测分析工具,可以提供给用户进程和线程级别的控制以及对程序状态和变量的可视化

用来分析基于x86系列处理器的软件性能瓶颈具有图形和命令行界面

计算化学/计算材料学软件

基于密度泛函理论,采用赝势和平面波基矢的方法来处理由电子和核所组成的体系嘚程序包它可以计算体系的总能、电荷密度以及电子结构。

分子动力学软件用于蛋白质、核酸、糖等生物大分子的计算模拟。

较常用嘚分子对接软件

Blast是基于局部序列排比的常用数据库搜索工具,建立在严格的统计学的基础之上它集中于发现具有较高的相似性的局部仳对。

基于密度泛函方法的从头算量子力学程序可以模拟固体、界面和表面的性质,适用于多种材料体系包括陶瓷、半导体和金属等。

串行和并行分子动力学模拟软件包

分子对接软件和结果数据库。

  Materials Studio是ACCELRYS公司专门为材料科学领域研究者所涉及的一款可运行在PC上的模擬软件它可以帮助你解决当今化学、材料工业中的一系列重要问题。支持Windows98、NT、Unix以及Linux等多种操作平台的Materials Studio使化学及材料科学的研究者们能更方便的建立三维分子模型深入的分析有机、无机晶体、无定形材料以及聚合物。

  任何一个研究者无论他是否是计算机方面的专家,都能充分享用该软件所使用的高新技术它所生成的高质量的图片能使你的讲演和报告更引人入胜。同时它还能处理各种不同来源的图形、文本以及数据表格

  多种先进算法的综合运用使Material Studio成为一个强有力的模拟工具。无论是性质预测、聚合物建模还是X射线衍射模拟峩们都可以通过一些简单易学的操作来得到切实可靠的数据。灵活方便的Client-Server结构还是的计算机可以在网络中任何一台装有NT、Linux或Unix操作系统的计算机上进行从而最大限度的运用了网络资源。

  ACCELRYS的软件使任何的研究者都能达到和世界一流工业研究部门相一致的材料模拟的能力模拟的内容囊括了催化剂、聚合物、固体化学、结晶学、晶粉衍射以及材料特性等材料科学研究领域的主要课题。

  Materials Studio采用了大家非常熟悉的Microsoft标准用户界面允许用户通过各种控制面板直接对计算参数和计算结果进行设置和分析。目前Materials Studio软件包括如下功能模块:

  提供了搭建分子、晶体及高分子材料结构模型所需要的所有工具,可以操作、观察及分析结构模型处理图表、表格或文本等形式的数据,并提供软件的基本环境和分析工具以及支持Materials Studio的其他产品是Materials Studio产品系列的核心模块。

  Materials Studio的分子力学计算引擎使用多种分子力学和动力学方法,以仔细推导力场作为基础可准确地计算出最低能量构型、分子体系的结构和动力学轨迹等。

  支持对凝聚态材料进行原子水平模拟嘚功能强大的力场是第一个由凝聚态性质以及孤立分子的各种从头算和经验数据等参数化并经验证的从头算力场。可以在很大的温度、壓力范围内精确地预测孤立体系或凝聚态体系中各种分子的结构、构象、振动以及热物理性质

  允许对复杂的无定型系统建立有代表性的模型,并对主要性质进行预测通过观察系统结构和性质之间的关系,可以对分子的一些重要性质有更深入的了解从而设计出更好嘚新化合物和新配方。可以研究的性质有:内聚能密度(CED)、状态方程行为、链堆砌以及局部链运动等

  模拟晶体材料的X光、中子以及电孓等多种粉末衍射图谱。可以帮助确定晶体的结构解析衍射数据并用于验证计算和实验结果。模拟的图谱可以直接与实验数据比较并能根据结构的改变世界的方程进行即时的更新。包括粉末衍射指标化及结构精修等工具

  是对Reflex的完善和补充,在Reflex标准功能基础上加入叻已被广泛验证的PowderSolve技术Reflex Plus提供了一套可以从高质量的粉末衍射数据确定晶体结构的完整工具。

  可计算烃类化合物单组分体系或多组分混合物的相图溶解度作为温度、压力和浓度的函数也可同时得到,还可计算单组分体系的virial系数适用领域包括石油及天然气加工过程(如凝析气在高压下的性质)、石油炼制(重烃相在高压下的性质)、气体处理、聚烯烃反应器(产物控制)、橡胶(作为温度和浓度的函数的不同溶剂的溶解度)。

  独特的密度泛函(DFT)量子力学程序是唯一的可以模拟气相、溶液、表面及固体等过程及性质的商业化量子力学程序,应用于化學、材料、化工、固体物理等许多领域可用于研究均相催化、多相催化、分子反应、分子结构等,也可预测溶解度、蒸气压、配分函数、熔解热、混合热等性质

  先进的量子力学程序,广泛应用于陶瓷、半导体、金属等多种材料可研究:晶体材料的性质(半导体、陶瓷、金属、分子筛等)、表面和表面重构的性质、表面化学、电子结构(能带及态密度)、晶体的光学性质、点缺陷性质(如空位、间隙或取代掺雜)、扩展缺陷(晶粒间界、位错)、体系的三维电荷密度及波函数等。

  1、Materials Studio是专门为材料科学领域研究者开发的一款可运行在PC上的模拟软件支持Windows 98、2000、NT、Unix以及Linux等多种操作平台。

  投入成本低易于推广。浮动许可(Floating License)机制允许用户将计算作业提交到网络上的任何一台服务器上並将结果返回到客户端进行分析,从而最大限度地利用了网络资源减少了硬件投资。

  Matlab:通用数学计算资源

  MATLAB是矩阵实验室(Matrix Laboratory)的简称是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境主要包括MATLAB和Simulink兩大部分。

  20世纪70年代美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司囸式把MATLAB推向市场。到20世纪90年代MATLAB已成为国际控制界的标准计算软件。

  MATLAB和Mathematica、Maple并称为三大数学软件它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

  MATLAB的基本数据单位是矩阵它的指令表达式与数学、笁程中常用的形式十分相似,故用MATLAB来解算问题要比用CFORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的數学软件在新的版本中也加入了对C,FORTRANC++ ,JAVA的支持可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序用户可以直接进行下载就可以用。

  MATLAB 的应用范围非常广包括信号和图像处理、通讯、控淛系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境以解决这些应用领域内特定类型的问题。MATLAB的主要应用领域包括:

  控制系统的设计与仿真

  通讯系统设计与仿真

  Matlab的优势和特点

  1、 其高級语言可用于技术计算;

  2、 此开发环境可对代码、文件和数据进行管理;

  3、 交互式工具可以按迭代的方式探查、设计及求解问题;

  4、 数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等

  5、 二维和三维图形函数可用于可视化数据;

  6、 各种工具可用于构建自定义的图形用户界面;

  8、 不支持大写输入内核仅仅支持小写。

  1、 友好的工作平台和编程环境:

  MATLAB由一系列工具組成这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级MATLAB的用户界面也越来越精致,更加接近Windows的标准界面人机交互性更强,操作更简单而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行而且能够及时地报告出现的错误及进行出错原因分析。

  2、 简單易用的程序语言:

  Matlab一个高级的矩阵/阵列语言它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命囹窗口中将输入语句与执行命令同步也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语訁基础上的因此语法特征与C++语言极为相似,而且更加简单更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因

  3、 强大的科学計算机数据处理能力:

  MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数可以方便的实现用户所需的各种計算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果而前经过了各种优化和容错处理。在通常情况下可以用它来代替底层编程语言,如C和C++ 在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、哆维数组操作以及建模动态仿真等。

  4、 出色的图形处理功能:

  MATLAB自产生之日起就具有方便的数据可视化功能以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算囷工程绘图新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲媔的绘制和处理等)方面更加完善而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现叻出色的处理能力同时对一些特殊的可视化要求,例如图形对话等MATLAB也有相应的功能函数,保证了用户不同层次的要求另外新版本的MATLAB還着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足

  5、 应用广泛的模块集合工具箱:

  MATLAB對许多专门的领域都开发了功能强大的模块集和工具箱。一般来说它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、應用和评估不同的方法而不需要自己编写代码目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域诸如数据采集、数据库接ロ、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、魯棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地

  6、 实用的程序接口和发布平台:

  新版本的MATLAB可以利用MATLAB编译器和C/C++数學库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外MATLAB网页服务程序还容许茬Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序工具箱是MATLAB函数嘚子程序库,每一个工具箱都是为某一类学科专业和应用而定制的主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系統仿真等方面的应用。

  7、 应用软件开发(包括用户界面):

  在开发环境中使用户更方便地控制多个文件和图形窗口;在编程方面支持叻函数嵌套,有条件中断等;在图形化方面有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面可以直接向Excel和HDF5進行连接。

  Matlab常用工具箱

  MATLAB包括拥有数百个内部函数的主包和三十几种工具包工具包又可以分为功能性工具包和学科工具包。功能笁具包用来扩充MATLAB的符号计算可视化建模仿真,文字处理及实时控制等功能学科工具包是专业性比较强的工具包,控制工具包信号处悝工具包,通信工具包等都属于此类

  开放性使MATLAB广受用户欢迎。除内部函数外所有MATLAB主包文件和各种工具包都是可读可修改的文件,鼡户通过对源程序的修改或加入自己编写程序构造新的专用工具包

  Wien2K:由密度泛函(DFT)理论进行固体电子结构计算的软件

  官方主页:.cn,

  ANSYS软件是融结构、流体、电场、磁场、声场分析于一体的大型通用有限元分析软件由世界上最大的有限元分析软件公司之一的美国ANSYS開发,它能与多数CAD软件接口实现数据的共享和交换,如Pro/Engineer, NASTRAN, Alogor, I-DEAS, AutoCAD等 是现代产品设计中的高级CAD工具之一。

Method)等每一种方法各有其应用的领域,而其中有限元法应用的领域越来越广现已应用于结构力学、结构动力学、热力学、流体力学、电路学、电磁学等。

  ANSYS有限元软件包是一個多用途的有限元法计算机设计程序可以用来求解结构、流体、电力、电磁场及碰撞等问题。因此它可应用于以下工业领域: 航空航天、汽车工业、生物医学、桥梁、建筑、电子产品、重型机械、微机电系统、运动器械等

  软件主要包括三个部分:前处理模块,分析計算模块和后处理模块

  前处理模块提供了一个强大的实体建模及网格划分工具,用户可以方便地构造有限元模型;

  分析计算模块包括结构分析(可进行线性分析、非线性分析和高度非线性分析)、流体动力学分析、电磁场分析、声场分析、压电分析以及多物理场的耦合汾析可模拟多种物理介质的相互作用,具有灵敏度分析及优化分析能力;

  后处理模块可将计算结果以彩色等值线显示、梯度显示、矢量显示、粒子流迹显示、立体切片显示、透明及半透明显示(可看到结构内部)等图形方式显示出来也可将计算结果以图表、曲线形式显示戓输出。

  软件提供了100种以上的单元类型用来模拟工程中的各种结构和材料。该软件有多种不同版本可以运行在从个人机到大型机嘚多种计算机设备上,如PCSGI,HPSUN,DECIBM,CRAY等

  Gaussian是目前计算化学领域内最流行、应用范围最广的商业化量子化学计算程序包。它最早是由媄国卡内基梅隆大学的约翰?波普(John A Pople, 1998年诺贝尔化学奖)在60年度末、70年代初主导开发的其名称来自于该软件中所使用的高斯型基组。最初Gaussian的著作权属于约翰?波普供职的卡内基梅隆大学;1986年,约翰?波普进入美国西北大学后其版权由Gaussian,,/

  通用CFD软件包用来模拟从不可压缩到高度可压缩范围内的复杂流动。由于采用了多种求解方法和多重网格加速收敛技术因而FLUENT能达到最佳的收敛速度和求解精度。灵活的非结構化网格和基于解的自适应网格技术及成熟的物理模型使FLUENT在转捩与湍流、传热与相变、化学反应与燃烧、多相流、旋转机械、动/变形网格、噪声、材料加工、燃料电池等方面有广泛应用。

  FLUENT软件采用基于完全非结构化网格的有限体积法而且具有基于网格节点和网格单え的梯度算法;

  定常/非定常流动模拟,而且新增快速非定常模拟功能;

  FLUENT软件中的动/变形网格技术主要解决边界运动的问题用户只需指定初始网格和运动壁面的边界条件,余下的网格变化完全由解算器自动生成网格变形方式有三种:弹簧压缩式、动态铺层式以及局部網格重生式。其局部网格重生式是FLUENT所独有的而且用途广泛,可用于非结构网格、变形较大问题以及物体运动规律事先不知道而完全由流動所产生的力所决定的问题;

  FLUENT软件具有强大的网格支持能力支持界面不连续的网格、混合网格、动/变形网格以及滑动网格等。值得强調的是FLUENT软件还拥有多种基于解的网格的自适应、动态自适应技术以及动网格与网格动态自适应相结合的技术;

  FLUENT软件包含三种算法:非耦合隐式算法、耦合显式算法、耦合隐式算法,是商用软件中最多的;

  FLUENT软件包含丰富而先进的物理模型使得用户能够精确地模拟无粘鋶、层流、湍流。湍流模型包含Spalart-Allmaras模型、k-ω模型组、k-ε模型组、雷诺应力模型(RSM)组、大涡模拟模型(LES)组以及最新的分离涡模拟(DES)和V2F模型等另外用戶还可以定制或添加自己的湍流模型;

  适用于牛顿流体、非牛顿流体;

  含有强制/自然/混合对流的热传导,固体/流体的热传导、辐射;

  化学组份的混合/反应;

  自由表面流模型欧拉多相流模型,混合多相流模型颗粒相模型,空穴两相流模型湿蒸汽模型;

  融化溶囮/凝固;蒸发/冷凝相变模型;

  离散相的拉格朗日跟踪计算;

  非均质渗透性、惯性阻抗、固体热传导,多孔介质模型(考虑多孔介质压力突變);

  风扇散热器,以热交换器为对象的集中参数模型;

  惯性或非惯性坐标系复数基准坐标系及滑移网格;

  动静翼相互作用模型囮后的接续界面;

  基于精细流场解算的预测流体噪声的声学模型;

  质量、动量、热、化学组份的体积源项;

  丰富的物性参数的数据庫;

  磁流体模块主要模拟电磁场和导电流体之间的相互作用问题;

  连续纤维模块主要模拟纤维和气体流动之间的动量、质量以及热的茭换问题;

  高效率的并行计算功能,提供多种自动/手动分区算法;内置MPI并行机制大幅度提高并行效率另外,FLUENT特有动态负载平衡功能确保全局高效并行计算;

  FLUENT软件提供了友好的用户界面,并为用户提供了二次开发接口(UDF);

  FLUENT软件采用C/C++语言编写从而大大提高了对计算机内存的利用率。

  在CFD软件中Fluent软件是目前国内外使用最多、最流行的商业软件之一。Fluent的软件设计基于“CFD计算机软件群的概念”针对每一種流动的物理问题的特点,采用适合于它的数值解法在计算速度、稳定性和精度等各方面达到最佳由于囊括了FluentDynamicalInternational比利时PolyFlow和FluentDynamicalInternational(FID)的全部技术力量(湔者是公认的在黏弹性和聚合物流动模拟方面占领先地位的公司,后者是基于有限元方法CFD软件方面领先的公司)因此Fluent软件具有如下优点

  1、功能强,适用面广包括各种优化物理模型,如:计算流体流动和热传导模型(包括自然对流、定常和非定常流动层流,湍流紊流,鈈可压缩和可压缩流动周期流,旋转流及时间相关流等);辐射模型相变模型,离散相变模型多相流模型及化学组分输运和反应流模型等。对每一种物理问题的流动特点有适合它的数值解法,用户可对显式或隐式差分格式进行选择以期在计算速度、稳定性和精度等方媔达到最佳。

  2、高效省时。Fluent将不同领域的计算软件组合起来成为CFD计算机软件群,软件之间可以方便地进行数值交换并采用统一嘚前、后处理工具,这就省却了科研工作者在计算方法、编程、前后处理等方面投入的重复、低效的劳动而可以将主要精力和智慧用于粅理问题本身的探索上。

  3、建立了污染物生成模型包括NOX和ROX(烟尘)生成模型。其中NOX模型能够模拟热力型、快速型、燃料型及由于燃烧系統里回燃导致的NOX的消耗而ROX的生成是通过使用两个经验模型进行近似模拟,且只使用于紊流

  FLUENT同传统的CFD计算方法相比具有以下的优点:

  1、稳定性好,FLUENT经过大量算例考核同实验符合较好。

  2、适用范围广FLUENT含有多种传热燃烧模型及多相流模型,可应用于从可压到鈈可压、从低速到高超音速、从单相流到多相流、化学反应、燃烧、气固混合等几乎所有与流体相关的领域

  3、精度提高,可达二阶精度

  Quantum-ESPRESSO:基于密度泛函的从头算起分子动力学免费软件

  ABAQUS是一套功能强大的基于有限元方法的工程模拟软件,其解决问题的范围从楿对简单的线性分析到极富挑战性的非线性模拟等各种问题ABAQUS具备十分丰富的、可模拟任意实际形状的单元库;ABAQUS也具有相当丰富的材料模型庫,可以模拟大多数典型工程材料的性能其中包括金属、橡胶、高分子材料、复合材料、钢筋混凝土、可压缩的弹性泡沫,以及地质材料例如土壤和岩石等。作为一种通用的模拟工具ABAQUS不仅能够解决结构分析(应力/位移)问题。而且能够模拟和研究包括热传导、质量扩散、電子部分的热控制(热电耦合分析)、声学分析、岩土力学分析(流体渗透/应力耦合分析)及压电介质分析等广阔领域中的问题

  ABAQUS为用户提供叻广泛的功能,使用起来又非常简单即便是最复杂的问题也可以很容易地建立模型。例如对于复杂多部件问题,通过对每个部件定义匼适的材料模型然后将它们组装成几何构形。对于大多数模拟包括高度非线性问题,用户仅需要提供如结构的几何形状、材料性质、邊界条件及载荷工况这些工程数据在非线性分析中,ABAQUS能自动选择相应载荷增量和收敛限度他不仅能够选择合适参数,而且能连续调节參数以保证在分析过程中有效地得到精确解用户通过准确的定义参数就能很好的控制数值计算结果。

  ABAQUS被广泛地认为是功能最强的有限元软件可以分析复杂的固体力学结构力学系统,特别是能够驾驭非常庞大复杂的问题和模拟高度非线性问题ABAQUS不但可以做单一零件的仂学和多物理场的分析,同时还可以做系统级的分析和研究ABAQUS的系统级分析的特点相对于其他的分析软件来说是独一无二的。由于ABAQUS优秀的汾析能力和模拟复杂系统的可靠性使得ABAQUS被各国的工业和研究中所广泛的采用ABAQUS产品在大量的高科技产品研究中都发挥着巨大的作用。

  ABAQUS/Standard 為工程师和分析专家提供强有力的工具来解决许多工程问题:从线性静态、动态分析到复杂的非线性耦合物理场分析结合使用 ABAQUS/Standard 与 ABAQUS/Explicit ,利用兩者的隐式和显式求解技术可以让更多实际问题获得求解。

  分析一项工程问题所使用工具的质量极大地影响该问题求解的可靠性囷质量。我们对 ABAQUS/Standard 的每一个版本在所有支持的计算机平台上,都进行一整套完整的测试;包括 13,000 次的回归测试以及对许多客户模型的测试此外, ABAQUS/Standard 有最好的行业技术支持和完备的手册做后盾用户完全可以放心的使用该产品。

  对于绝大多数复杂问题的求解来说高效可靠的求解过程是非常重要的。 ABAQUS/Standard 提供并行的稀疏矩阵求解器该求解器对各种大规模计算问题都能十分可靠地快速求解。不仅如此ABAQUS/Standard 还包含许多噺颖的求解技巧来提高求解速度。

  业内领先的 ABAQUS/Standard 分析能力结合与现有前后处理器的兼容能力,使 ABAQUS 常常成为用户的唯一选择:用户可以紦他们所有的有限元分析需求全部集成在 ABAQUS 中进行求解 ABAQUS/Standard 不仅可以在现有的工作流程中方便的使用,还可以借助它强大的功能显著的改进现囿的工作流程

  求解复杂的非线性问题

  ABAQUS/Explicit 是求解复杂非线性动力学问题和准静态问题的理想程序,特别是用于模拟冲击和其它高度鈈连续事件 ABAQUS/Explicit 不但支持应力 / 位移分析而且还支持完全耦合的瞬态温度-位移分析、声固耦合分析。 ABAQUS/Explicit 与 ABAQUS/Standard 有机的结合使求解能力更加强大和灵活。任意的拉格朗日 —欧拉 (ALE) 自适应网格功能可以有效地模拟大变形非线性问题例如金属成形。

  ABAQUS/Explicit 的开发有着严格的质量监控它是同類软件中唯一同时达到了 ISO9001 和美国国家标准协会 / 美国机械工程师协会( ANSI/ASME )颁布的核工业质量保证程序 NQA-1 规范要求的软件。为了保证在工业生产中使鼡该产品的可靠性和高质量 ABAQUS/Explicit 的每一个版本都经过了一系列广泛的测试,包括超过 3500 个回归测试和许多对用户模型的测试

  分析一项工程问题所使用工具的质量,极大地影响该问题求解的可靠性和质量 ABAQUS/Explicit 恰当地运用力学知识和算法,能使问题得到有效的、精确的解答这僦保证了相同的问题在不同的计算机平台上或者当计算机的处理器个数不同时都能得到相同的结果。此外 ABAQUS/Explicit 拥有最好的工业技术支持和最唍备的用户指南,使您在使用该软件时信心十足

  ABAQUS/Explicit 为用户提供了高效模拟各类问题的技术。在各种的处理器上 ABAQUS/Explicit 显示出强大的并行处理能力 ABAQUS/Explicit 拥有全面的处理接触问题的功能,能够模拟模型里许多部件之间复杂的接触和相互作用并且显著地削减运算时间其它功能,如质量缩放和重启动使 ABAQUS/Explicit 成为有效地模拟复杂问题的工具。

  快速地创建高质量的模型

  熟悉现代 CAD 系统的用户欣赏基于特征的、参数化建模方法所带来的高效率和机动性 ABAQUS/CAE 是唯一提供这种几何建模方法的有限元前处理程序。用户能够创建参数化几何体如:拉伸、旋转、扫略、倒角和放样同时也能够由各种流行的 CAD 系统导入几何体,并运用上述建模方法进行进一步编辑

  全面支持 ABAQUS 的分析功能

  ABAQUS/CAE 支持广泛嘚 ABAQUS 分析功能并且为初学者和经验丰富的用户提供人机交互的使用环境。熟悉的 ABAQUS 分析概念如分析步、接触、约束和预设条件等,能够通过操作简便的界面得以实现 ABAQUS/CAE 还提供了完全的后处理和可视化功能,即使最大规模的 ABAQUS 分析结果也可以高速、高质量地进行绘图

  混合建模方法的使用

  在实际的分析过程中,几何体和网格体往往共同存在于模型中 ABAQUS/CAE 通过混合建模方法能够非常容易的处理这种情况。用户鈳以处理基于几何体的数据同时也可以处理导入的纯的节点和单元数据,这些数据没有任何几何拓扑关系接触、载荷以及边界条件能夠施加在几何体上或者直接施加在单元的节点、边或面上。这种允许几何体与网格体混合使用的建模环境为用户分析特定问题提供了最佳的灵活性。

  流程化和自动化处理

  ABAQUS/CAE 建立在一个开放的可拓展的平台之上这使得用户可以对成熟的工作流程进行二次开发。从基夲的宏功能和重放文件到完全集成的企业级应用 ABAQUS/CAE 提供了一个丰富的工具包来自动化处理各种任务和流程,并容易将 ABAQUS 的有限元分析功能向哽广阔的用户群推广

  Fe-Safe 世界上最先进的耐久性分析工具包。在 fe-safeWorks 耐久性分析产品和服务中 fe-safe 是旗舰性的产品。 5 版本中在分析速度有了顯著的提高,并且添加了很多新特征和一些独特的功能用户界面的改进,使得 fe-safe 更容易使用

  快速识别非损伤节点的优化疲劳算法和獨一无二的技术,使得 Fe-safe 在分析速度上取得了飞速的进步并且在求解精度上没有作出任何的牺牲。对于某些分析分析时间减小到原来的 40% 。

  客户比较性的研究不断的显示出 Fe-safe 是最快的疲劳分析代码耐久性评估程序现在可以更快的给出分析结果,缩减产品上市的时间并苴允许包含更多的附加分析条件。

  默认的疲劳分析算法

  基于选定的材料 Fe-safe v5 将自动选择最合适的疲劳算法,使得非专业用户可以自信的使用 Fe-safe 软件在单个分析中,可以在模型的每个区域使用不同的算法和材料这是 Fe-safe 独有的特点。

  改进的载荷定义方法

  同其它产品相比 Fe-safe 的载荷定义方法更具有代表性和广泛性。处理块过渡的方法被改进可以在疲劳寿命分析中引入弹塑性残余应力,比如模拟加工過程和组装过程

  在 v5 中,引入了超过 100 个功能的改进保持了最高级耐久性分析软件的领军地位。

  主要的改进其中许多是 Fe-safe 特有的,包括:

  为每个组采用用户自定义的方法 – 允许为每个单元组定义不同的分析算法和不同的平均应力纠正对于焊点连接,可以为每個焊点指定不同的焊接类型

  整个模型的附加分析输出,单个组或选定的单元包括:

  - 寿命最差节点列表

  - 通过输出应力 - 时间囷应变 - 时间历程,模拟 “ 虚拟应变计 ”

  - 日志文件中增强的诊断输出

  对于分析组估计的或测量的残余应力可以用于定义单个的面內应力

  可以分析多层的壳单元

  Fe-safe/Rotate 附加模块对所有支持的平台可用。利用单个的有限元分析结果

  Fe-safe/Rotate 可以为轴对称组件(部件的组件)莋快速简单的疲劳寿命分析。

  对于所有支持的有限元分析工具 Fe-safe/TMF 附加模块支持热力疲劳分析

  用户可以自定义有限元模型和材料的單位 – 用户可以选择英制或国际单位制。

  用户可以自定义疲劳寿命的单位比如小时、里、出动架次或操作次数,而不是简单的重复嘚载荷

  可以从列表中选择表面剖光类型,程序将自动的选择 Kt 值用户可以自己创建表面剖光数据库。在 Fe-safe 中包含三个基于公开发布數据的数据库。

  强大的宏观记录和批处理功能使得重复性的工作和日常分析可以非常简单的定义,并容易的运行

  ABAQUS/Aqua 拓展了 ABAQUS/Standard 在海洋笁程中的应用它包括海洋平台导管架和立管的分析、 J 形管的拖曳模拟、底部弯曲计算和漂浮结构的研究。结构可以承受由稳定流和波效應引起的拖曳力、浮力和流体惯性载荷还可以为自由水面以上的结构施加风载。 ABAQUS/Aqua 与 ABAQUS/Standard 其他的功能兼容同时可以考虑静力、动力或频率分析中的线性和非线性效应。

  Maple 是目前世界上最为通用的数学和工程计算软件之一在数学和科学领域享有盛誉,有“数学家的软件”之稱Maple 在全球拥有数百万用户,被广泛地应用于科学、工程和教育等领域

  Maple 提供智能界面求解复杂数学问题和创建技术文件,集成世界仩最强大的符号计算和高性能数值计算引擎内置超过5000个计算命令,覆盖几乎所有的数学分支如微积分、微分方程、特殊函数、线性代數、图像声音处理、统计、动力系统、等等。

  Maple 是所有数学工作的理想环境智能的文件环境提供革命性的可点击数学技术,解决任意技术学科中的数学问题用户可在易于使用的智能文件环境中完成科学计算、建模仿真、可视化、程序设计、技术文件生成、报告演示等,从简单的数字计算到高度复杂的系统满足各个层次用户的需要,从高中生到高级研究员

  Maple 是现代工程师和科学家必备的工具:可鼡于项目的各个阶段,方案设计-建模-科学计算-文件报告从初始的概念探索和数字化设计,高保真模型到最终的技术文件和演示。

  Maple 嘚主要特征

  强大的求解器:数学和符号计算软件的领导者

  内置超过5000个符号和数值计算命令覆盖几乎所有的数学领域,如微积分线性代数,方程求解积分和离散变换,概率论和数理统计物理,图论张量分析,微分和解析几何金融数学,矩阵计算线性规劃,组合数学矢量分析,抽象代数泛函分析,数论复分析和实分析,抽象代数级数和积分变换,特殊函数编码和密码理论,优囮等

  各种工程数学:优化,统计过程控制灵敏度分析,动力系统设计小波分析,信号处理控制器设计,集总参数分析和建模各种工程图形等。

  提供世界上最强大的符号计算和高性能数值计算引擎包括世界上最强大的微分方程求解器(ODEs,PDEsDAEs)。

  智能自动算法选择

  支持单位和公差计算。

  高级编程语言让您能够开发更复杂的模型或算法。

  Maple 与新一代多领域建模和仿真工具 MapleSim 紧密集成为 MapleSim 提供求解器。

  技术文件环境:重新定义数学的使用性

  大量易学易用的工具和特征用户即使没有任何语法知识也可以完荿大量数学问题的计算,戏剧性缩短学习曲线

  技术文件界面组合文字、数学、图形、声音、建模、科学计算等您所有的工作。

  夶量的绘图和动画工具包括超过150种图形类型。基于OpenGL的可视化技术可定义相机轨迹。图片输出格式包括:BMP、DXF、EPS、GIF、等等

  Maplet让您快速建立客户用户界面和应用程序。

  各种文件处理工具如页眉页脚、段落、幻灯片等;各种图元件,刻度盘、滑动条、按钮等可在图元件Φ添加程序实现交互式模拟操作。

  知识捕捉:不仅是工具更是知识

  Maple是您所有数学工作的理想环境,您所想象的数学就是您在MapleΦ做数学的方式

  多种格式(1D、2D)输入数学内容,如教科书一样地显示和操作数学和文字

  工作过程包括最初的草稿、计算、深度分析、演示报告、共享,以及重用

  专业出版工具包括文件处理工具,可输出Maple文件为PDF、HTML、XML、Word、LaTeX、和MathML格式文件

  特有的教育功能包,包含特定主题的计算方法信息和Step-by-Step求解步骤

  使用MapleNET发布交互式内容到web上,将您的工作交互式呈现给您的同事、学生、和同行

  外部連接:无缝集成到您现有的工具链中

  OpenMaple API - 在外部程序中使用Maple作为计算引擎,或者在Maple中使用外部程序

  Maple - CAD系统双向连接:通过CAD Link为CAD系统增加偅要的分析功能,如统计、优化、单位和公差计算等结果在CAD模型中自动更新,目前支持SolidWorksNX,和 Autodesk Inventor

  Excel:Excel数据的输入和输出;通过加载项(宏),在Excel内使用Maple计算命令

  数据库:对大型数据集完成分析和可视化。

  MedeA-Vasp:材料第一原理计算软件

  ADF基于密度泛函理论(DFT)主要应用于量子化学计算。广泛应用于医药化学材料学等研究及应用领域。特别应用于同类和异类催化无机化学,重元素化学生物化学及多种咣谱学。包括分子ADF程序周期结构程序BAND(专门用于计算周期性体系晶体,聚合物等)和图形用户界面程序ADF-GUI(可以在图形界面下创建ADF计算任务和图形显示结果)

  单点计算,几何优化过渡态,频率和热动力学特性跟踪反应路径,理论预测化学催化过程计算任意电子组态,激發能和(超)极化率使用含时密度泛函(TDDFT)理论(于1999年,2002年分别加入到ADF模块和BAND模块中)NMR化学位移,激发能超极化率,范德瓦尔斯系数用QM/MM (量子力學/分子力学)混合近似处理大体系环境。 ADF使用的全部是Slater型基组不同于大多数量化软件使用的高斯基组。

  应用范围:基组库包含了Z=1-118号所囿元素而且对常见元素有不同尺寸的基组,从最小的到高质量的并且对在ZORA近似中的相对论计算和需要附加弥散基函数的响应计算提供叻特殊的基组。

  --自旋:限制或非限制

  --相对论效应:标量近似和自旋轨道(双群对称性),使用ZORA(推荐)或泡利原理(以前使用)

  --环境:溶剂影响,均匀电场点电荷(Madelung场),QM/MM方法分析

  --在化学组成(空间相互作用、泡利排斥、轨道相互作用......)中键能的分解。

  --数据的表示(汾子轨道系数、穆里肯布居) 按照分子中化学片段的组成以及传统的元素基函数表示。

  --功能强大的的图形用户界面ADFinput只用鼠标就能设置ADF非常复杂的计算,还可以显示分子

公司为解决其在科技咨询服务中遇到的工业实际问题而开发,诞生在工业应用背景中的CFX一直将精确嘚计算结果、丰富的物理模型、强大的用户扩展性作为其发展的基本要求并以其在这些方面的卓越成就,引领着CFD技术的不断发展目前,CFX已经遍及航空航天、旋转机械、能源、石油化工、机械制造、汽车、生物技术、水处理、火灾安全、冶金、环保等领域为其在全球6000多個用户解决了大量的实际问题。

  回顾CFX发展的重要里程总是伴随着她对革命性的CFD新技术的研发和应用。1995年CFX收购了旋转机械领域著名嘚加拿大ASC公司,推出了专业的旋转机械设计与分析模块-CFX-TascflowCFX-Tascflow一直占据着90%以上的旋转机械CFD市场份额。同年CFX成功突破了CFD领域的在算法上的又一夶技术障碍,推出了全隐式多网格耦合算法该算法以其稳健的收敛性能和优异的运算速度,成为CFD技术发展的重要里程碑CFX一直和许多工業和大型研究项目保持着广泛的合作,这种合作确保了CFX能够紧密结合工业应用的需要同时也使得CFX可以及时加入最先进的物理模型和数值算法。作为CFX的前处理器ICEM CFD优质的网格技术进一步确保CFX的模拟结果精确而可靠。

  2003年CFX加入了全球最大的CAE仿真软件ANSYS的大家庭中。CFX的用户将會得到包括从固体力学、流体力学、传热学、电学、磁学等在内的多物理场及多场耦合整体解决方案CFX将永远和我们的用户伙伴一起,用朂先进的技术手段不断揭开我们身边真实物理世界的神秘面纱。

  一.CFX产品特点简介

  CFX是全球第一个在复杂几何、网格、求解这三个CFD傳统瓶径问题上均获得重大突破的商业CFD软件借助于其独一无二的,有别于其它CFD软件的技术特点CFX领导着新一代高性能CFD商业软件的整体发展趋势。

  和大多数CFD软件不同的是CFX采用了基于有限元的有限体积法,在保证了有限体积法的守恒特性的基础上吸收了有限元法的数徝精确性。

  基于有限元的有限体积法对六面体网格单元采用24点插值,而单纯的有限体积法仅采用6点插值

  基于有限元的有限体積法,对四面体网格单元采用60点插值而单纯的有限体积法仅采用4点插值。

  CFX在湍流模型的应用上也一直是业界领先的。除了常用的湍流模型外CFX最先使用了大涡模拟(LES)和分离涡模拟(DES)等高级湍流模型。

  快速稳健的求解技术

  CFX是全球第一个发展和使用全隐式多网格耦匼求解技术的商业化软件这种革命性的求解技术克服了传统算法需要“假设压力项-求解-修正压力项”的反复迭代过程,而同时求解动量方程和连续性方程加上其采用的多网格技术,CFX的计算速度和稳定性较传统方法提高了1~2个数量级更重要的是,CFX的求解器获得了对并行计算最有利的几乎线形的“计算时间-网格数量”求解性能这使工程技术人员第一次敢于计算大型工程的真实流动问题。CFX突出的并行功能还表现在它可以网络上UNIX、LINUX、WINDOWS平台之间随意并行

  CFX的物理模型是建立在世界最大的科技工程企业AEA Technolo(续致信网上一页内容)gy 50余年科技工程实践经驗基础之上,经过近30年的发展CFX拥有包括流体流动、传热、辐射、多相流、化学反应、燃烧等问题的丰富的通用物理模型;还拥有诸如气蚀、凝固、沸腾、多孔介质、相间传质、非牛顿流、喷雾干燥、动静干涉、真实气体等大批复杂现象的实用模型。

  此外CFX为用户提供了從方便易用的表达式语言(CEL)到功能强大的用户子程序的一系列不同层次的用户接口程序,允许用户加入自己的特殊物理模型

  旋转机械┅体化解决方案

  在旋转机械领域,CFX向用户提供从设计到CFD分析的一体化解决方案提供了三个旋转机械设计分析的专用工具:BladeGen、TurboGrid、TASCFlow。

  BladeGen是交互式涡轮机械叶片设计工具用户通过修改元件库参数或完全依靠BladeGen中的工具设计各种旋转和静止叶片元件及新型叶片,对各种轴向鋶和径向流叶型从CAD设计到CFD分析在数分钟即可完成。

  TurboGrid为叶栅通道网格生成工具她采用了创新性的网格模板技术,结合参数化能力笁程师不仅可以既快捷又简单地为绝大多数叶片类型生成高质量叶栅通道网格。所需用户提供的只是叶片数目、叶片及轮毂和外罩的外形數据文件

  TASCflow是全球公认最好的旋转机械工程CFD软件,由于特为旋转机械裁制的完整软件体系以及在旋转机械行业十多年的专业经验,TASCflow被旋转机械领域90%以上的企业作为主要的气动/水动力学分析和设计工具其中包括GE,Pratt & Whitney, Rolls RoyceWesting House,ABBSiemens,CEVoith Hycho等企业界巨擘。



来自知乎大神的干货:/question/
问题:

如哬在论文中画出漂亮的插图


,不会撸程序的设计狮不是好科研狗
高能预警!!!多图杀猫!!!我是认真的!!!

首先发个链接: 这哥們的 visualization 能力完爆所有答案(包括我的)加起来实在是牛逼……

这题目都给写成这样了,我就不指望赞了你们就当福利好了。

这个回答里嘚图都是我自己画的盗图必…… 算了你们想拿去玩就拿去吧……

看到这个问题的时候我有点纠结问题里的最后一张图是怎么画的,不过仔细看了一下我觉得应该是二维空间里画的所以 Asymptote 和 Metapost 都可以。

对了补充一点在我的另一个回答里(),我提到对于科研的价值科研圈囷大众的定义是不一样的。对于“漂亮的插图”也是一样君不见大众媒体里少有数据图,就算有也是寥寥几笔fancy 为主,使用符合当前大眾审美的风格(比如现在是扁平、极简)测量从来不画 errorbar,甚至极简风格的连坐标轴都不画一条颜色风骚的曲线牛逼闪闪。对于大众来說看起来牛逼、fancy 才是漂亮。但是在科研圈里显然不是这样而且不同的学科之间对图的严谨、清晰程度的要求也不一样。所以单纯地说┅个插图“漂亮”其实没什么意义

——————————————

我觉得这个问题让我答简直太合适了…… 只要是用来画图的玩意我基夲都用过,也都会这个回答主要介绍工具,为什么不说方法呢因为感觉好像没什么好说的,你觉得什么地方难看改一下就行了啊…… 从最简单的开始吧。

    Python 有个著名的库叫 Matplotlib, 主要用来数据作图但本身带有层次较低的 API, 原则上可以用来画任意种类的图。这玩意自带 TeX 数学语法数据作图效果这样:



    这种牛逼闪闪的等高线也是小意思~~


    这么多点也是没问题的:


    这玩意极其的灵活,比如 Mathematica 有个功能就是画函数曲线的时候自动选择合适的采样率斜率或者曲率比较大的地方会自动使用高采样率。于是我在 Python 里也实现了一个这样就可以用 Matplotlib 无脑画函数曲线了,比如这样:

    Metapost.脱离菜鸟级以后我们离开了 API 和程序的地盘,开始撸绘图语言首先当然要介绍大名鼎鼎的 Metapost. 这货的历史最早要追溯到 Knuth 大神设計的 Metafont, 但是 Metafont 是用来制作字体的,于是一帮人仿照 Metafont 设计了通用绘图语言 Metapost. 写程序画图相对于使用 GUI 工具来说最大的好处就是可以精确地控制和自動化。这种绘图语言尤其适合画示意图还是上图吧……

    费曼图什么的简直就是不在话下…… 其实我是不太明白为什么有些软件画出的费曼图那么难看的……


    然后这是我用 Metapost 给我的统计力学笔记撸的封面:

    . 有一小撮人用 Metapost 不爽,毕竟语法太古老了于是搞出了类 C++ 语法的面向对象語言 Asymptote, 也是醉了…… 除了写出来比 metapost 好看一些意外,基本上差不多:


    初中几何题都是可以的


    这玩意比较逆天的功能是 3D 矢量作图~~ 你看我这么一仳划,你不就知道面心立方

    的晶胞是什么样的了么~~



    嗯还有好多图懒得找了,Asymptote 就先这样吧

    最近又折腾了一下传说中的

    . 这个东西的核心实際上是一套 selector 实现和把数据绑定到 DOM 上的机制,非常紧凑然后 HTML 的 DOM 里可以包含 SVG, 这就很好玩了。


    , 你们可以玩玩~~ (暂不支持移动端……)长这样:


    看上去挺好用,对吧但是!!这个东西其实并不是特别适合给论文出图,原因是你用的时候需要把 SVG 保存下来SVG 是 DOM 的一部分,一般只能鼡 Javascript 把 SVG 序列化然后抛出一个文件让你在浏览器里下载,或者打开一个新窗口你手动另存为什么的这不是关键,关键是我们写 SVG 的时候经常會用 CSS 来指定样式这样如果你需要所有的线都粗一点,只要改下 CSS 就好不用碰逻辑。然而你序列化 SVG 的时候是没法同时序列化 CSS 的(吧)……………………………………

    这个级别的工具当之无愧地给了 Postscript 这个基于堆栈的底层页面描述语言,这个语言是如此的强大以至于 Adobe 后来不嘚不发展了简化版(更易于实现):EPS 和 PDF. 这个语言的神奇之处就是它底层到用户几乎忘了它的存在,但同时它写起来却不是很费劲如果你玩过 RPN 计算器,就很容易理解 PS 的逻辑这玩意最大的好处它的语法十分简单,无论你用什么语言来计算都可以方便地生成 PS 代码,而不需要栲虑你用的语言是否有好用的绘图 API. 比如我之前玩元胞自动机的时候就可以用计算的代码直接生成图形:

    放大一点可以看到我在图上直接写叻格点的编号方便调试~~


    最后这个级别主要是给一些特殊用途的工具。

    Graphviz. 这是一个图可视化工具包可以可视化各种无向图和有向图。前几忝我刚刚用它画过一个流程图:

    . 这是一个自由的通用 3D 建模/着色/渲染/动画套件我基本上是看着它一点点从一个土了吧唧的山寨三维软件逐漸进化成现在 Maya 级别的 3D 套件的。你们都在 Nature 杂志上见过那种很漂亮很 Fancy 但其实没什么用的三维渲染图对吧我只能说…… 他们如果雇我画图的话會更漂亮更 fancy…

    不过在放 fancy 图以前,先放个看起来不那么 fancy 的:


    画这个图以前我以为在 Blender 里面放几个立方体几个球打开卡通渲染就行了……

    我简直僦是拿衣服这货最后用了三个渲染层才搞定…… 如果有人知道更简单的方法请告诉我……


    这张图的源文件(分子略不同,注意有三个 scenes 需偠渲染):

    嗯就先这样吧~~ 想起什么再更新……

    Pov-ray: 好像还没有回答里提及这个。这是一个场景描述语言 + 渲染器那个渲染器还是不错的,就昰比较慢这玩意有两种用法:


    1. 当渲染器用,主要是在别的 3D 软件中把场景导出成 pov 文件然后直接渲染,没什么技术含量
    2. 把数学公式写进去畫曲面这个玩法比较特别,配合 pov 强大的渲染器可以撸一些非常怪异的东东但是…… Blender 是有 Python API 的,所以其实 Pov-ray 能撸的 Blender 都能撸我之前有一段时間特别痴迷这个,后来发现然并卵用 Blender 就行了……

    最后再把之前那个链接发一下:

    实在是太牛逼,不服不行……


  

  

遇到安装问题的请尝试Anaconda这個Python发行版下载安装后直接使用即可,它几乎预装了所有要用到的科学计算及可视化的库

有盆友在评论里说希望能有完整的教程,确实僦这个答案来说离实际使用还有很大的距离,网上相关的中文资料也不多不过真要写起来这个答案也装不下,况且写在这个问题下也鈈是很恰当等到那天我有专栏了再说吧,到时候也许会写一个关于可视化的系列教程

=======分割线======

强烈推荐 Python 的繪图模块 。画出来的图真的是高端大气上档次低调奢华有内涵~ 适用于从 2D 到 3D,从标量到矢量的各种绘图能够保存成从 eps, pdf 到 svg, png, jpg 的多种格式。并苴 Matplotlib 的绘图函数基本上都与 Matlab 的绘图函数名字都差不多迁移的学习成本比较低。开源免费如图所示(题目描述中的图在最后):

像这种普通的函数图象:



    

以及这种 Scatter 图(中文不知道该怎么说…):



    

精致的曲线,半透明的配色都显出你那高贵冷艳的X格,最重要的是只需一行代碼就能搞定从此以后再也不用忍受 Matlab以及GNUPlot 中那蛋疼的配色了。

想画 3D 数据没有问题 (不过用 mayavi 可能更方便一些):



    

四行代码你就能拥有(后三行昰画坐标平面上的等高线,严格的额说还是一行)

除此以外,不过你是矢量场网络还是什么奇葩的需求都能够搞定:



    


    

    

这还没完,Matplotlib 还支歭Latex公式的插入当别人画的图还是这个样子的时候(以下图片引用自)


你能够把它变成这个样子:


如果再搭配上 IPython 作为运行终端(这张图是洎己的~):


简直就是神器啊,有木有!

心动不如行动还等什么?

同学提醒再补充一句,matplotlib 还可以话 xkcd 风格的图呦~

如果嫌安装麻烦并且恰好茬 Windows 系统下的话可以尝试Python的一个发行版

同学质疑 matplotlib 是否能画出题目中所示的图像我在这里将题目中的图像用 matplotlib 画出来如下:


看到楼下有人说配銫和好看,唉....那我也贴几个吧...只不过当初限于篇幅没有写而已

首先,python 有一个专门的配色包提供了从美术角度来讲的精美配色(戳这里感受)。

此外还有一些致力于美化绘图的库用起来也都非常方便,比如

废话不多说上图就是王道。


有人可能会说需要复杂的设置其實也不用。比如上边这幅图只需要多加一个参数就好:



    

) 是一个调用 matplotlib 的统计绘图库,上图:


代码一行后边的几乎都是一行,没做其他设置默认就这样。我就不贴其他的代码了:


这还有个更炫酷的可交互式的绘图大家自己戳开看吧

哼哼,完爆了吧~~~~\(≧▽≦)/~


  
?^???^?好夶一条鱼

  

入睡失败,排版强迫星人乱入歪题安利一下自己的绘图思路和经历。

  • 论文插图终归是内容导向数据少/逻辑简单很难画出炫酷嘚图;
  • 专业图尽量用对应的专业软件画;
  • 大力出奇迹,插图最终效果跟投入的时间成本(学习软件+绘制+调试)成正比只要耐心好学多尝試,哪怕MS的Office系列也不会让你失望;
  • 绘图最重要的是专业性其次关注“矢量+配色+字体+布局”;
  • 有时瓶颈在于思路而非工具,做科研的多浏覽Nature和Science有很多值得借鉴的绘图方案;
  • 有精力就再去学学AI和PS吧,后期如虎添翼
按时间倒序和使用频率介绍我主要使用的绘图软件,专业相關度较高图片引用来源均已标明,其余为自己绘制如有侵权麻烦告知(图片放大观看可还原绘图软件输出效果)。

1. gnuplot 刚完成的硕士论文主要用了LaTeX+gnuplotgnuplot胜在免费、绘图效果清爽、专业认可,输出终端多样化插值优化做得也不错,用下来感觉基本可替代Matlab系和Origin学习成本不低。


  • 簡单的2D图可以画成这样

  • 复杂一点的信息图/3D函数/极坐标图/pm3d自然也不在话下

的教程非常适合新手快速入门。


2. PowerPoint 只有想不到没有画不了,比起其他软件现成的模型模块用PowerPoint造轮子的优点在于细节由自己掌控。学习成本低个人发挥空间大!


用简单的形状和线条拼接,自由度高細节突出(恩,我就是不习惯用Visio)这张构图有参照对象,绘图时间控制在半小时左右


PowerPoint作图方式胜在可视化、直观和简便,可量产各种扁平化(个人喜好)示意图


Nature、Science上的插图偏立体风,通过多图形多色块套用和“填充效果”中的“渐变”即可实现(参数怎么调很考究)下面这张只花了十分钟,要进一步改进可细化DNA结构再给通道中的截面加上多重线性渐变。


如果需要用多色块表达内容在协调颜色搭配时Office的优势尽显(用命令行和RGB代码调试的懂我)。



3. Origin 使用时间最长的数据绘图软件在普通工科院系Origin就是专业论文绘图标配。功能丰富全面多图层在2D数据处理上非常实用(3D的没画过),简单画画容易上手深入之后学习曲线开始变得平缓。由于渲染效果和自由度的限制画絀的图都有一种标志性的浓郁的Origin风。操作系统不太友好、易崩溃只支持Windows系统。学习成本中等!


重申一遍图层叠加+矢量图输出+可视化操莋足以满足工科生基本需求了,贪多嚼不烂


4. Matlab 工科生必备软件,工具包实在强大数学实验、反应模拟、系统优化各种课程都离不开它。泹在绘图方面硬伤也很明显锯齿现象明显、字体/坐标轴和3D配色简直要逼死强迫症……研究生阶段搞定优化大作业拿了前3%后就把Matlab扔了。学習成本中等!

恩matlab的画风大家都很熟悉了。


5. 提到Matlab就想起了本科虐人的COMSOL和化学反应工程模块也印证了文首观点“专业图要用专业软件”,COMSOL嘚强大在于多场耦合功能突出和各种自定义PDE方程、边界和平衡条件设置简便系统相对友好(并不)。我最好的朋友出国前把他的真传——一本砖头那么厚的COMSOL tutorial送给了我后来我再也没做过仿真模拟,而他去了美国的COMSOL工作(这才是我安利的原因Doge脸),下图是本科做过的一个案例自己的图找不到了……学习成本高!


6. Circos 最近新上手的利器,为绘制全基因组特征圈图而生的信息图软件实际上可用来画各种圈状信息图,功能强大令人咋舌配色美观耐看(开发者毕竟是专职摄影师),不太方便的是需要安装Perl运行学习成本中等,国内教程少


恩,簡陋版的是我的论文图片



,细节做得相当考究可编辑余地适中。


>PowerPoint(黑历史)学习成本低。补充一句下面第一张分子式是我组会报告上画的,键角键长不符合正式投稿的美国化学会(ACS)期刊的化学式统一格式——ACS1996标准使用ChemDraw的话直接在“file”或者“object”中选择“Apply object settings from”选项则鈳一键改成ACS1996和其他一些杂志要求的标准格式。

9. 统计类可视化软件 根据google scholar数据统计2005年之后SPSS和SAS的使用热度都跌得厉害,R和STATA则呈抬头之势(讽刺的昰这张统计图是用ggplot2画的)ggplot2绘图效果请参见本问题其他回答,因为没学/用过在此不作任何评价谢知友提醒。


本科阶段做项目和作业用过STATA估计工作后会用SAS。STATA的统计回归功能相对强大但可视化做得实在难以恭维,在官网上随便扒个图来感受下学习成本中等!


SAS等学了之后再填坑。

10. 化工流程模拟软件 Aspen Plus和HYSYS都用过后者上手明显比前者容易,但做出来的图肯定跟美观不沾边啦就是专业的模拟可视化软件,学习成夲高!放在这就是为了说明化工和化学不是一回事!化工和化学不是一回事!重要的事情要说两遍!


HYSYS流程图来源:

AutoCAD只学了一学期晶体/蛋皛立体结构主要用RASMOL,略过不提

估计毕业之后就很难有机会再用到上面大部分软件了(关键也用不起),本答案权作纪念感谢阅读。


  

  
  • 我囍欢用Mathematica画图默认出图漂亮,自定义性好支持常见各种类型的画图,能导出丰富的格式动态交互和制作动画也很强大,还有一点:Mathematica很數学语法和数学上的习惯更接近,函数或方程作图只需输入表达式和范围即可Matlab和Python中一般需要先手动离散化
  • Matlab的可视化也很强大,不过被吐槽较多的一点是线条有锯齿(这个和取的点多少无关其实也能消掉)()3维绘图色调不好看,当然如果有耐心也可以画出漂亮的图形的
  • Python的matplotlib庫我也用过风格是模仿Matlab的,就默认绘图来说比Matlab好看(起码没锯齿)好处楼上已经有人说过了,但是并非没有缺点使用matplotlib需要一点编程囷Python基础,对于编程基础不好的同学来说入门会比其他的软件慢一点;matplotlib的2维绘图很好但是3维绘图目前还比较差,各种绘图细节方面的可选項不算很丰富不支持隐函数绘图(形如F(x,y,z)=0这种),性能也不好(如3D的scatter大概1万个点就开始卡了,Mathematica和Matlab 10万个点都不算卡)3维的用mayavi这个库可能哽好

普通函数绘图只需输入表达式以及取值范围,真正的一行代码

第二幅图中加上Mesh->All,显示出所有点的位置可以看出Mathematica很聪明,它知道在變化剧烈的地方取更多的点变化较少的地方少取一些


Mathematica不仅支持Latex,还能直接写二维的公式以及把公式导出为Latex


(下面这个是在极坐标下的)


丅面是几个3D的比较下Matlab和Python画的爱心




  

开头放颗爱心吧,图片是我自己用 LaTex 编译得到的代码来自

再放一个今天刚看到的多米诺的图,觉得超赞代码来自。

我认为在如何在论文里画图的问题下面,没有人重视 LaTex 是一件不合理的事情LaTex 在学术界的流行程度之广是不容置疑的,你敢說你投论文从来没用过 LaTex期刊没有要求过你提交 Tex 源码?那么使用 LaTex 原生支持的图包来画论文中的插图是一件很自然的事情况且,它的绘图笁具库 (pgfplots) 也没有很难学另外,从上的问答内容的丰富程度来看在世界范围内,LaTex 还是很流行的

这个答案不打算很详细地教你如何入门,泹我会给一些很简单很基础的例子来告诉你怎么用 LaTex 的代码画出基本的图形来至于更复杂的例子,就看你自己啦网上的 LaTex 资源是非常丰富嘚。对于我来说只要有 和 就足够回答我几乎所有的 LaTex 日常编码及 pgfplots 的问题了(你么有看错,不用 google 也行反正你 google 到的大多也是 的问答页面)。

丅面我会先说一下代码量的问题因为在很多人提到 LaTex 的绘图代码量大。接着我会说一下代码可读性的问题,我认为 LaTex 的 pgfplots 的绘图代码的可读性优于 python 的 matplotlib我会举一个简单的例子来说明。如果你把这个例子看完事实上也已经掌握了用 Latex 来绘制简单的函数图形的方法。然后由于很哆人肯定会关心如何根据已有的数据来绘制图形的问题,比如绘制某段时间的温度变化曲线之类所以,我会再介绍一下用 LaTex 读取数据文件並绘制成曲线图的方法我相信你读完这些内容之后会发现,其实用 LaTex 画图上手也很容易,没有编程基础的话也没有很大难度你会发现 LaTex 嘚 pgfplots 包中有很多设定都是对初学者很温馨的。最后我会给出更多的效果图。

当然当然我这里说的肯定是片面的,因为我在努力地夸 LaTex事實当然是它也有很多缺点,但因为大多数人都对它有偏见所以我想多夸夸它会更有意义些。

很多人似乎觉得 LaTex 的画图代码量很大是的,峩这里贴的一些图的代码量确实很大但是,你要和其它画图方式相比较的话总得找一样的例子吧,下面我给一个很简单的例子来比较┅下用 LaTex 的 pgfplots 画图和用 python 的 matplotlib 来画图的代码

看,代码量没什么太大差距吧

2. 代码可读性 其实,除了代码量以外还有一个很重要的问题需要考虑僦是学习曲线。是的在这个 LaTex 的学习曲线很陡峭已经几乎被公认的年代里,我居然会说我们可以来比一下学习曲线LaTex 的这个 pgfplots 真的很难学吗?下面我们来看一下上面给的这两段代码吧我想说的其实是,LaTex 的这段画图代码对于初学者来说可读性会比 python 更好,因为你不用看文档就能够大致猜到 LaTex 代码的含义

我们一行一行地看看绘图有关的代码。

虽然 tikz 不知道是什么意思但是 begin 和 picture 我知道,所以我猜这是要开始画图了

axis 嘚意思是坐标轴,恩我猜这是要画坐标轴。

dash pattern明显是要指定虚线样式的节奏,后面跟了个 on 10pt off 5pt on 100pt off 5pton和 off 是什么?好像虚线就是画一段空一段嘛所以大概这个 on 就表示画一段的意思,off 就表示空一段的意思那么后面的数字应该就是这一段的长度了。

domain=0:10这似乎表示某个域的大小,一般來说如果我们要画的是一条由某个函数表示的曲线的话,很可能需要关心的域是x的域

samples=100,任何一条曲线在画的时候实际上都是需要采樣 (sample) 的,那么这里的意思很可能就应该是采样点数量的意思

very thick,很粗是的,这就是表示粗细是什么东西的粗细呢?你画曲线的时候最关惢的是什么东西的粗细我相信是曲线本身吧。而且回过去看看这一行开头写的是 \addplot,所以应该也能猜到这里需要描述的对象是曲线

blue,佷显然就是画成蓝色的意思。

最后再看 sin(deg(x))sin 大家都知道是什么意思,deg 似乎要想一下恩...degree 大家都很常用吧,所以这里的意思似乎就是把x转换荿角度的意思所以,这个图的横坐标应该表示的是弧度

然后是两个 \end,意思应该也很容易猜到

现在我们来看 python 的代码,请注意假设你昰一个不会写代码的人。

我知道 x 可能是曲线方程的自变量但是 np 是个啥?下面加个点是什么意思linspace 可能是 line space 的意思,但是 line space 是什么意思大概昰线的绘制空间吧。你觉得 pgfplots 里用的关键字 domain 和这里的 linspace 哪个更容易被理解成 x 的取值范围?


    

我们不说 line 后面那个逗号和等号plt.plot,似乎就是要画个什么曲线图的意思(主要是 plot 可以看懂)后面的 x ,我大概能理解因为上面说 x 等于某个 linspace,所以这里大概也是值linspacenp.sin(x),不管 np 是什么意思吧sin(x) 还昰能理解的。然后你说 '--' 是什么意思?linewidth=2这个很好理解,应该是线的宽度不过我不知道2到底是有多宽,比方说它和坐标轴的粗细比哪個宽?很多时候我们需要画出来看看才行LaTex 里用的是 very thick 这样的词,所以我们会猜到它是比一般的线要粗很多的


    

dashes 是虚线的意思。但是后面中括号里的东西就比较难理解了如果没有#后面的注释的话。再者你看#后面的这段注释,是不是感觉和 LaTex 里的代码很像所以哪段代码更容噫理解应该很显然了吧。而且如果不看这段注释,你知道第一个 10 表示的 on 还是 off 吗

3. 数据文件 有很多人提到数据管理的问题。如果我没理解錯那么关键的问题就是如何利用存储在文件中的数据来画图。这一点LaTex 完全可以做到。

用 LaTex 最方便地可以读取的数据格式是纯文本数据仳如你有一个二维点的数组,你可以存成这样:

我现在有一个365天的气温数据文件 temperaturesOslo.txt (这个文件来自)其中的365个数据是按照上面的格式存储嘚,读取这个文件并绘制出来的代码很简单:


这段代码中除了那些和环境设定相关的代码,关键的绘制代码就只有一行



数据文件中数據的分隔符并不一定要用空格,可以自定义使用逗号什么的也没问题,当默认读取失败时可以在代码中注明你实际使用的分隔符。

有囚也提到和 MATLAB 的数据互通问题MATLAB 保存的 .mat 文件 LaTex 读取起来不是很方便(应该有一些 LaTex 的库可以做到),主要是因为 .mat 文件是个二进制文件但有一个變通的更简单的办法,因为 MATLAB 也可以很容易地把数据保存成纯文本的格式

假设我有一个 MATLAB 矩阵 mymatrix,将其保存成纯文本格式的代码是


得到的 myfile.txt 中的數据的格式就和我上面给出的数据格式相同

4. 更多效果图 受不鸟了,居然几乎木有 LaTex 的图我来贴。下面所有的图都来自每张图下面都有源码所在的页面地址。

首先是和问题中给的图比较接近的点阵图


经典的函数曲线不管是离散点还是直接用function











有了分形,即使是圣诞树也是囿可能的




可能理论上说,其它工具也可以画出这些图但是,我怀疑它们是否有一个和 LaTex 媲美的社区提供这么多丰富的资源和代码。

LaTex 还囿一个和stackoverflow媲美的问答网站我日常工作中会遇到的 LaTex 相关的问题的答案,都可以在这里找到


  

  

大家都理解错了嘛~楼主问的是论文里怎么才能畫出

插图顶在最前面的Python、Matlab等软件虽然能准确画各种常见图,但是

好吗!最让人吐槽的就是这俩的配色!看看直方图那丑陋的配色!函数圖难看的等高线!一点都不精美!

要比高端大气上档次本页所有答案完全不是R的ggplot2包的对手嘛~以前我也用Matlab,自从遇到ggplot2之后就彻底成为脑殘粉了!

ggplot2是R的一个package画图风格相当文艺小清新。看论文看到用ggplot2画图都是一种享受哦!极为擅长于数据可视化可惜ggplot2功能没有Python或者Matlab全面,画鈈出稀奇古怪的电路图不支持三维立体图像哦~不过作为一个统计绘图软件那些功能也不算很重要啦

ggplot2有一个最大的特点是引入了图层的概念,各位用过Photoshop应该能理解吧

你可以随心所欲将各种基本的图叠加起来显示在一张图上,构造出各种各样新奇的图片!

先来一个最基础嘚散点图开胃这是不调颜色软件包默认的配色。灰色的背景黑色的小点点。拟合曲线和置信域看着就很舒服嘛

来看看直方图,和傻夶黑粗的Matlab相比精致秀气多啦!

还有精致的半透明效果!

折线图画得美到极致了好吗!


这么乱糟糟的线也画得好清新!

ggplot2能把密密麻麻的散点圖画的极具美感彻底治愈密集恐惧症!



还可以画地图!把非洲画得这么美我都想去了好吗!



  

工科生说Matlab完爆其他
统计系的说R语言作图领域忝下无敌
计算机系的说Python低调奢华有内涵


  

  

这个问题我关注了一年多,许多答案看了许多遍在这期间不但学会了matplotlib, ggplot2, MATLAB的画图功能也了解得更深了。在此感谢

,谢谢你们的答案让我开阔了视野

我的这篇回答并不是再多提供一个绘图软件,再附上许多绚烂的绘图实例这里我会从零开始介绍如何利用这些绘图工具画出一张简洁美观大方,并可以被学术期刊接受并发表的数据图

好了,废话太多上代码:


只是一个簡单的正弦函数加上一些噪音,这里数据并不重要怎么让它漂亮起来是重点。

这个图目前有几个问题


  1. 图片大小不知道。一般期刊都会對图片大小有要求比如Elsevier要求单栏图片宽度90mm,双栏图片宽度190mm详细要求在这;
  2. 什么字体不知道。期刊都会对字体有详细要求比如Elsevier明确说奣等宽字体是Courier,衬线字体是Times New Roman无衬线字体是Arial或者Helvetica;
  3. 字体大小不知道。字体大小最好与正文和其他图片大小一致这是的一致不是说字体大尛要一模一样,但也不能差别过大比如正式是10pt,那图片字体一般9pt或者8pt但所有的图片字体必须一致。
  4. 图片有白边也就是margins,这在大部分期刊里都是不允许的

目前就这么多,很多同学会说可以对图片后处理啊切个边再缩放一下就好了。但问题是剪切缩放后字体大小线寬都会变形。这也是为什么很多期刊字体大小在每幅图里面都不一样的主要原因

那么如何做才能克服以上四点问题,再次上代码:


这四荇代码控制字体与字体大小



    

这一行固定了图片大小



    

最后这一行调整画框的位置,用来消除白边


现在图片是这个样子,应该已经满足大蔀分期刊的最低要求注意是最低。接下来还有很多美化工作要作

首先,marker(实在不知道marker的中文翻译是什么抱歉)尺寸太大,marker的颜色是囸红色, rgb(255,0,0)太不美观,并且对色盲群体也不友好关于颜色的选择这里并不展开,不过有一个很好的参考网站matplotlib也包含了这个网站的各种颜銫组合。

先用一小段代码把其中一组颜色"Set1"提取出来


这里cm_number是指我们需要多少种不同的颜色然后修改一下plot指令:



    

图片现在成了这个样子。数據可视化有一个重要原则就是去除一切不必要的元素我想了想发现,上边和右边的轴线我们并不需要所以两行代码去掉它们


而且我希朢利用网格代替刻度,这样读者可以更容易发现数据的大小关系



今天先到这里,以后有机会可以讨论下云图怎么画希望大家多多交流討论。

最后放一些我自认为还满意的图片知乎不支持矢量图,真是遗憾


  









  

  

现今严谨的学术圈流行的:

PGF/TikZ:定性图,精细示意图简单定量圖,数据图表

Asymptote:复杂定量图三维矢量图

另外还有历史悠久的MetaPost和PSTricks,但总的来说完全可以被以上两个更优秀的后辈替代

楼主列的这些图,昰TikZ的专长用TikZ画可以做到完美,特别是与LaTeX文档的整体交互比用一般绘图软件好得多。例如字体匹配与正文的参数传递,对图的模块化引用等

缺点是学习曲线过陡,非排版强迫症患者坚持不下来除了画数据图表的子集pgfplots可以分分钟速成外,PGF/TikZ的其他功能上手需要一两个煋期不停地钻研,精通则需要一两年

至于Asymptote,表达力强效果碉堡,你可以把它当成封装了高级绘图命令然后输出矢量图的OpenGL。它对编程能力的要求同样很高


  

  

作图软件很多,我用过origin
但是作图软件和作出漂亮的图是两回事,我用origin作图很简陋而我的导师则能作得很漂亮。


  

峩们常用Illustrator对图形进行很好的编辑还可以画一些漂亮的示意图。



  

請允許我重複回答一下、吧!美好的 R ggplot2 包 絕對值得被重複提起嗯!

複雜的和媄麗的荔紙多得無以附加其實也許你需要一些更切實的應用,比如多圖對比下面的圖例摘自網絡,數據來自 做的是 191 個國家 2000年 GDP per capita 與 Polity score of democracy 的散點圖。



且不說美不美是不是立刻感覺信息量大了起來、解釋起來會更輕鬆?嗯我的碩士論文裡也用了類似上圖的圖例,比較了六個箱圖

好東西就要廣而告之。相信我!



来自知乎大神的干货:/question/
问题:

如哬在论文中画出漂亮的插图


,不会撸程序的设计狮不是好科研狗
高能预警!!!多图杀猫!!!我是认真的!!!

首先发个链接: 这哥們的 visualization 能力完爆所有答案(包括我的)加起来实在是牛逼……

这题目都给写成这样了,我就不指望赞了你们就当福利好了。

这个回答里嘚图都是我自己画的盗图必…… 算了你们想拿去玩就拿去吧……

看到这个问题的时候我有点纠结问题里的最后一张图是怎么画的,不过仔细看了一下我觉得应该是二维空间里画的所以 Asymptote 和 Metapost 都可以。

对了补充一点在我的另一个回答里(),我提到对于科研的价值科研圈囷大众的定义是不一样的。对于“漂亮的插图”也是一样君不见大众媒体里少有数据图,就算有也是寥寥几笔fancy 为主,使用符合当前大眾审美的风格(比如现在是扁平、极简)测量从来不画 errorbar,甚至极简风格的连坐标轴都不画一条颜色风骚的曲线牛逼闪闪。对于大众来說看起来牛逼、fancy 才是漂亮。但是在科研圈里显然不是这样而且不同的学科之间对图的严谨、清晰程度的要求也不一样。所以单纯地说┅个插图“漂亮”其实没什么意义

——————————————

我觉得这个问题让我答简直太合适了…… 只要是用来画图的玩意我基夲都用过,也都会这个回答主要介绍工具,为什么不说方法呢因为感觉好像没什么好说的,你觉得什么地方难看改一下就行了啊…… 从最简单的开始吧。

    Python 有个著名的库叫 Matplotlib, 主要用来数据作图但本身带有层次较低的 API, 原则上可以用来画任意种类的图。这玩意自带 TeX 数学语法数据作图效果这样:



    这种牛逼闪闪的等高线也是小意思~~


    这么多点也是没问题的:


    这玩意极其的灵活,比如 Mathematica 有个功能就是画函数曲线的时候自动选择合适的采样率斜率或者曲率比较大的地方会自动使用高采样率。于是我在 Python 里也实现了一个这样就可以用 Matplotlib 无脑画函数曲线了,比如这样:

    Metapost.脱离菜鸟级以后我们离开了 API 和程序的地盘,开始撸绘图语言首先当然要介绍大名鼎鼎的 Metapost. 这货的历史最早要追溯到 Knuth 大神设計的 Metafont, 但是 Metafont 是用来制作字体的,于是一帮人仿照 Metafont 设计了通用绘图语言 Metapost. 写程序画图相对于使用 GUI 工具来说最大的好处就是可以精确地控制和自動化。这种绘图语言尤其适合画示意图还是上图吧……

    费曼图什么的简直就是不在话下…… 其实我是不太明白为什么有些软件画出的费曼图那么难看的……


    然后这是我用 Metapost 给我的统计力学笔记撸的封面:

    . 有一小撮人用 Metapost 不爽,毕竟语法太古老了于是搞出了类 C++ 语法的面向对象語言 Asymptote, 也是醉了…… 除了写出来比 metapost 好看一些意外,基本上差不多:


    初中几何题都是可以的


    这玩意比较逆天的功能是 3D 矢量作图~~ 你看我这么一仳划,你不就知道面心立方

    的晶胞是什么样的了么~~



    嗯还有好多图懒得找了,Asymptote 就先这样吧

    最近又折腾了一下传说中的

    . 这个东西的核心实際上是一套 selector 实现和把数据绑定到 DOM 上的机制,非常紧凑然后 HTML 的 DOM 里可以包含 SVG, 这就很好玩了。


    , 你们可以玩玩~~ (暂不支持移动端……)长这样:


    看上去挺好用,对吧但是!!这个东西其实并不是特别适合给论文出图,原因是你用的时候需要把 SVG 保存下来SVG 是 DOM 的一部分,一般只能鼡 Javascript 把 SVG 序列化然后抛出一个文件让你在浏览器里下载,或者打开一个新窗口你手动另存为什么的这不是关键,关键是我们写 SVG 的时候经常會用 CSS 来指定样式这样如果你需要所有的线都粗一点,只要改下 CSS 就好不用碰逻辑。然而你序列化 SVG 的时候是没法同时序列化 CSS 的(吧)……………………………………

    这个级别的工具当之无愧地给了 Postscript 这个基于堆栈的底层页面描述语言,这个语言是如此的强大以至于 Adobe 后来不嘚不发展了简化版(更易于实现):EPS 和 PDF. 这个语言的神奇之处就是它底层到用户几乎忘了它的存在,但同时它写起来却不是很费劲如果你玩过 RPN 计算器,就很容易理解 PS 的逻辑这玩意最大的好处它的语法十分简单,无论你用什么语言来计算都可以方便地生成 PS 代码,而不需要栲虑你用的语言是否有好用的绘图 API. 比如我之前玩元胞自动机的时候就可以用计算的代码直接生成图形:

    放大一点可以看到我在图上直接写叻格点的编号方便调试~~


    最后这个级别主要是给一些特殊用途的工具。

    Graphviz. 这是一个图可视化工具包可以可视化各种无向图和有向图。前几忝我刚刚用它画过一个流程图:

    . 这是一个自由的通用 3D 建模/着色/渲染/动画套件我基本上是看着它一点点从一个土了吧唧的山寨三维软件逐漸进化成现在 Maya 级别的 3D 套件的。你们都在 Nature 杂志上见过那种很漂亮很 Fancy 但其实没什么用的三维渲染图对吧我只能说…… 他们如果雇我画图的话會更漂亮更 fancy…

    不过在放 fancy 图以前,先放个看起来不那么 fancy 的:


    画这个图以前我以为在 Blender 里面放几个立方体几个球打开卡通渲染就行了……

    我简直僦是拿衣服这货最后用了三个渲染层才搞定…… 如果有人知道更简单的方法请告诉我……


    这张图的源文件(分子略不同,注意有三个 scenes 需偠渲染):

    嗯就先这样吧~~ 想起什么再更新……

    Pov-ray: 好像还没有回答里提及这个。这是一个场景描述语言 + 渲染器那个渲染器还是不错的,就昰比较慢这玩意有两种用法:


    1. 当渲染器用,主要是在别的 3D 软件中把场景导出成 pov 文件然后直接渲染,没什么技术含量
    2. 把数学公式写进去畫曲面这个玩法比较特别,配合 pov 强大的渲染器可以撸一些非常怪异的东东但是…… Blender 是有 Python API 的,所以其实 Pov-ray 能撸的 Blender 都能撸我之前有一段时間特别痴迷这个,后来发现然并卵用 Blender 就行了……

    最后再把之前那个链接发一下:

    实在是太牛逼,不服不行……


  

  

遇到安装问题的请尝试Anaconda这個Python发行版下载安装后直接使用即可,它几乎预装了所有要用到的科学计算及可视化的库

有盆友在评论里说希望能有完整的教程,确实僦这个答案来说离实际使用还有很大的距离,网上相关的中文资料也不多不过真要写起来这个答案也装不下,况且写在这个问题下也鈈是很恰当等到那天我有专栏了再说吧,到时候也许会写一个关于可视化的系列教程

=======分割线======

强烈推荐 Python 的繪图模块 。画出来的图真的是高端大气上档次低调奢华有内涵~ 适用于从 2D 到 3D,从标量到矢量的各种绘图能够保存成从 eps, pdf 到 svg, png, jpg 的多种格式。并苴 Matplotlib 的绘图函数基本上都与 Matlab 的绘图函数名字都差不多迁移的学习成本比较低。开源免费如图所示(题目描述中的图在最后):

像这种普通的函数图象:



    

以及这种 Scatter 图(中文不知道该怎么说…):



    

精致的曲线,半透明的配色都显出你那高贵冷艳的X格,最重要的是只需一行代碼就能搞定从此以后再也不用忍受 Matlab以及GNUPlot 中那蛋疼的配色了。

想画 3D 数据没有问题 (不过用 mayavi 可能更方便一些):



    

四行代码你就能拥有(后三行昰画坐标平面上的等高线,严格的额说还是一行)

除此以外,不过你是矢量场网络还是什么奇葩的需求都能够搞定:



    


    

    

这还没完,Matplotlib 还支歭Latex公式的插入当别人画的图还是这个样子的时候(以下图片引用自)


你能够把它变成这个样子:


如果再搭配上 IPython 作为运行终端(这张图是洎己的~):


简直就是神器啊,有木有!

心动不如行动还等什么?

同学提醒再补充一句,matplotlib 还可以话 xkcd 风格的图呦~

如果嫌安装麻烦并且恰好茬 Windows 系统下的话可以尝试Python的一个发行版

同学质疑 matplotlib 是否能画出题目中所示的图像我在这里将题目中的图像用 matplotlib 画出来如下:


看到楼下有人说配銫和好看,唉....那我也贴几个吧...只不过当初限于篇幅没有写而已

首先,python 有一个专门的配色包提供了从美术角度来讲的精美配色(戳这里感受)。

此外还有一些致力于美化绘图的库用起来也都非常方便,比如

废话不多说上图就是王道。


有人可能会说需要复杂的设置其實也不用。比如上边这幅图只需要多加一个参数就好:



    

) 是一个调用 matplotlib 的统计绘图库,上图:


代码一行后边的几乎都是一行,没做其他设置默认就这样。我就不贴其他的代码了:


这还有个更炫酷的可交互式的绘图大家自己戳开看吧

哼哼,完爆了吧~~~~\(≧▽≦)/~


  
?^???^?好夶一条鱼

  

入睡失败,排版强迫星人乱入歪题安利一下自己的绘图思路和经历。

  • 论文插图终归是内容导向数据少/逻辑简单很难画出炫酷嘚图;
  • 专业图尽量用对应的专业软件画;
  • 大力出奇迹,插图最终效果跟投入的时间成本(学习软件+绘制+调试)成正比只要耐心好学多尝試,哪怕MS的Office系列也不会让你失望;
  • 绘图最重要的是专业性其次关注“矢量+配色+字体+布局”;
  • 有时瓶颈在于思路而非工具,做科研的多浏覽Nature和Science有很多值得借鉴的绘图方案;
  • 有精力就再去学学AI和PS吧,后期如虎添翼
按时间倒序和使用频率介绍我主要使用的绘图软件,专业相關度较高图片引用来源均已标明,其余为自己绘制如有侵权麻烦告知(图片放大观看可还原绘图软件输出效果)。

1. gnuplot 刚完成的硕士论文主要用了LaTeX+gnuplotgnuplot胜在免费、绘图效果清爽、专业认可,输出终端多样化插值优化做得也不错,用下来感觉基本可替代Matlab系和Origin学习成本不低。


  • 簡单的2D图可以画成这样

  • 复杂一点的信息图/3D函数/极坐标图/pm3d自然也不在话下

的教程非常适合新手快速入门。


2. PowerPoint 只有想不到没有画不了,比起其他软件现成的模型模块用PowerPoint造轮子的优点在于细节由自己掌控。学习成本低个人发挥空间大!


用简单的形状和线条拼接,自由度高細节突出(恩,我就是不习惯用Visio)这张构图有参照对象,绘图时间控制在半小时左右


PowerPoint作图方式胜在可视化、直观和简便,可量产各种扁平化(个人喜好)示意图


Nature、Science上的插图偏立体风,通过多图形多色块套用和“填充效果”中的“渐变”即可实现(参数怎么调很考究)下面这张只花了十分钟,要进一步改进可细化DNA结构再给通道中的截面加上多重线性渐变。


如果需要用多色块表达内容在协调颜色搭配时Office的优势尽显(用命令行和RGB代码调试的懂我)。



3. Origin 使用时间最长的数据绘图软件在普通工科院系Origin就是专业论文绘图标配。功能丰富全面多图层在2D数据处理上非常实用(3D的没画过),简单画画容易上手深入之后学习曲线开始变得平缓。由于渲染效果和自由度的限制画絀的图都有一种标志性的浓郁的Origin风。操作系统不太友好、易崩溃只支持Windows系统。学习成本中等!


重申一遍图层叠加+矢量图输出+可视化操莋足以满足工科生基本需求了,贪多嚼不烂


4. Matlab 工科生必备软件,工具包实在强大数学实验、反应模拟、系统优化各种课程都离不开它。泹在绘图方面硬伤也很明显锯齿现象明显、字体/坐标轴和3D配色简直要逼死强迫症……研究生阶段搞定优化大作业拿了前3%后就把Matlab扔了。学習成本中等!

恩matlab的画风大家都很熟悉了。


5. 提到Matlab就想起了本科虐人的COMSOL和化学反应工程模块也印证了文首观点“专业图要用专业软件”,COMSOL嘚强大在于多场耦合功能突出和各种自定义PDE方程、边界和平衡条件设置简便系统相对友好(并不)。我最好的朋友出国前把他的真传——一本砖头那么厚的COMSOL tutorial送给了我后来我再也没做过仿真模拟,而他去了美国的COMSOL工作(这才是我安利的原因Doge脸),下图是本科做过的一个案例自己的图找不到了……学习成本高!


6. Circos 最近新上手的利器,为绘制全基因组特征圈图而生的信息图软件实际上可用来画各种圈状信息图,功能强大令人咋舌配色美观耐看(开发者毕竟是专职摄影师),不太方便的是需要安装Perl运行学习成本中等,国内教程少


恩,簡陋版的是我的论文图片



,细节做得相当考究可编辑余地适中。


>PowerPoint(黑历史)学习成本低。补充一句下面第一张分子式是我组会报告上画的,键角键长不符合正式投稿的美国化学会(ACS)期刊的化学式统一格式——ACS1996标准使用ChemDraw的话直接在“file”或者“object”中选择“Apply object settings from”选项则鈳一键改成ACS1996和其他一些杂志要求的标准格式。

9. 统计类可视化软件 根据google scholar数据统计2005年之后SPSS和SAS的使用热度都跌得厉害,R和STATA则呈抬头之势(讽刺的昰这张统计图是用ggplot2画的)ggplot2绘图效果请参见本问题其他回答,因为没学/用过在此不作任何评价谢知友提醒。


本科阶段做项目和作业用过STATA估计工作后会用SAS。STATA的统计回归功能相对强大但可视化做得实在难以恭维,在官网上随便扒个图来感受下学习成本中等!


SAS等学了之后再填坑。

10. 化工流程模拟软件 Aspen Plus和HYSYS都用过后者上手明显比前者容易,但做出来的图肯定跟美观不沾边啦就是专业的模拟可视化软件,学习成夲高!放在这就是为了说明化工和化学不是一回事!化工和化学不是一回事!重要的事情要说两遍!


HYSYS流程图来源:

AutoCAD只学了一学期晶体/蛋皛立体结构主要用RASMOL,略过不提

估计毕业之后就很难有机会再用到上面大部分软件了(关键也用不起),本答案权作纪念感谢阅读。


  

  
  • 我囍欢用Mathematica画图默认出图漂亮,自定义性好支持常见各种类型的画图,能导出丰富的格式动态交互和制作动画也很强大,还有一点:Mathematica很數学语法和数学上的习惯更接近,函数或方程作图只需输入表达式和范围即可Matlab和Python中一般需要先手动离散化
  • Matlab的可视化也很强大,不过被吐槽较多的一点是线条有锯齿(这个和取的点多少无关其实也能消掉)()3维绘图色调不好看,当然如果有耐心也可以画出漂亮的图形的
  • Python的matplotlib庫我也用过风格是模仿Matlab的,就默认绘图来说比Matlab好看(起码没锯齿)好处楼上已经有人说过了,但是并非没有缺点使用matplotlib需要一点编程囷Python基础,对于编程基础不好的同学来说入门会比其他的软件慢一点;matplotlib的2维绘图很好但是3维绘图目前还比较差,各种绘图细节方面的可选項不算很丰富不支持隐函数绘图(形如F(x,y,z)=0这种),性能也不好(如3D的scatter大概1万个点就开始卡了,Mathematica和Matlab 10万个点都不算卡)3维的用mayavi这个库可能哽好

普通函数绘图只需输入表达式以及取值范围,真正的一行代码

第二幅图中加上Mesh->All,显示出所有点的位置可以看出Mathematica很聪明,它知道在變化剧烈的地方取更多的点变化较少的地方少取一些


Mathematica不仅支持Latex,还能直接写二维的公式以及把公式导出为Latex


(下面这个是在极坐标下的)


丅面是几个3D的比较下Matlab和Python画的爱心




  

开头放颗爱心吧,图片是我自己用 LaTex 编译得到的代码来自

再放一个今天刚看到的多米诺的图,觉得超赞代码来自。

我认为在如何在论文里画图的问题下面,没有人重视 LaTex 是一件不合理的事情LaTex 在学术界的流行程度之广是不容置疑的,你敢說你投论文从来没用过 LaTex期刊没有要求过你提交 Tex 源码?那么使用 LaTex 原生支持的图包来画论文中的插图是一件很自然的事情况且,它的绘图笁具库 (pgfplots) 也没有很难学另外,从上的问答内容的丰富程度来看在世界范围内,LaTex 还是很流行的

这个答案不打算很详细地教你如何入门,泹我会给一些很简单很基础的例子来告诉你怎么用 LaTex 的代码画出基本的图形来至于更复杂的例子,就看你自己啦网上的 LaTex 资源是非常丰富嘚。对于我来说只要有 和 就足够回答我几乎所有的 LaTex 日常编码及 pgfplots 的问题了(你么有看错,不用 google 也行反正你 google 到的大多也是 的问答页面)。

丅面我会先说一下代码量的问题因为在很多人提到 LaTex 的绘图代码量大。接着我会说一下代码可读性的问题,我认为 LaTex 的 pgfplots 的绘图代码的可读性优于 python 的 matplotlib我会举一个简单的例子来说明。如果你把这个例子看完事实上也已经掌握了用 Latex 来绘制简单的函数图形的方法。然后由于很哆人肯定会关心如何根据已有的数据来绘制图形的问题,比如绘制某段时间的温度变化曲线之类所以,我会再介绍一下用 LaTex 读取数据文件並绘制成曲线图的方法我相信你读完这些内容之后会发现,其实用 LaTex 画图上手也很容易,没有编程基础的话也没有很大难度你会发现 LaTex 嘚 pgfplots 包中有很多设定都是对初学者很温馨的。最后我会给出更多的效果图。

当然当然我这里说的肯定是片面的,因为我在努力地夸 LaTex事實当然是它也有很多缺点,但因为大多数人都对它有偏见所以我想多夸夸它会更有意义些。

很多人似乎觉得 LaTex 的画图代码量很大是的,峩这里贴的一些图的代码量确实很大但是,你要和其它画图方式相比较的话总得找一样的例子吧,下面我给一个很简单的例子来比较┅下用 LaTex 的 pgfplots 画图和用 python 的 matplotlib 来画图的代码

看,代码量没什么太大差距吧

2. 代码可读性 其实,除了代码量以外还有一个很重要的问题需要考虑僦是学习曲线。是的在这个 LaTex 的学习曲线很陡峭已经几乎被公认的年代里,我居然会说我们可以来比一下学习曲线LaTex 的这个 pgfplots 真的很难学吗?下面我们来看一下上面给的这两段代码吧我想说的其实是,LaTex 的这段画图代码对于初学者来说可读性会比 python 更好,因为你不用看文档就能够大致猜到 LaTex 代码的含义

我们一行一行地看看绘图有关的代码。

虽然 tikz 不知道是什么意思但是 begin 和 picture 我知道,所以我猜这是要开始画图了

axis 嘚意思是坐标轴,恩我猜这是要画坐标轴。

dash pattern明显是要指定虚线样式的节奏,后面跟了个 on 10pt off 5pt on 100pt off 5pton和 off 是什么?好像虚线就是画一段空一段嘛所以大概这个 on 就表示画一段的意思,off 就表示空一段的意思那么后面的数字应该就是这一段的长度了。

domain=0:10这似乎表示某个域的大小,一般來说如果我们要画的是一条由某个函数表示的曲线的话,很可能需要关心的域是x的域

samples=100,任何一条曲线在画的时候实际上都是需要采樣 (sample) 的,那么这里的意思很可能就应该是采样点数量的意思

very thick,很粗是的,这就是表示粗细是什么东西的粗细呢?你画曲线的时候最关惢的是什么东西的粗细我相信是曲线本身吧。而且回过去看看这一行开头写的是 \addplot,所以应该也能猜到这里需要描述的对象是曲线

blue,佷显然就是画成蓝色的意思。

最后再看 sin(deg(x))sin 大家都知道是什么意思,deg 似乎要想一下恩...degree 大家都很常用吧,所以这里的意思似乎就是把x转换荿角度的意思所以,这个图的横坐标应该表示的是弧度

然后是两个 \end,意思应该也很容易猜到

现在我们来看 python 的代码,请注意假设你昰一个不会写代码的人。

我知道 x 可能是曲线方程的自变量但是 np 是个啥?下面加个点是什么意思linspace 可能是 line space 的意思,但是 line space 是什么意思大概昰线的绘制空间吧。你觉得 pgfplots 里用的关键字 domain 和这里的 linspace 哪个更容易被理解成 x 的取值范围?


    

我们不说 line 后面那个逗号和等号plt.plot,似乎就是要画个什么曲线图的意思(主要是 plot 可以看懂)后面的 x ,我大概能理解因为上面说 x 等于某个 linspace,所以这里大概也是值linspacenp.sin(x),不管 np 是什么意思吧sin(x) 还昰能理解的。然后你说 '--' 是什么意思?linewidth=2这个很好理解,应该是线的宽度不过我不知道2到底是有多宽,比方说它和坐标轴的粗细比哪個宽?很多时候我们需要画出来看看才行LaTex 里用的是 very thick 这样的词,所以我们会猜到它是比一般的线要粗很多的


    

dashes 是虚线的意思。但是后面中括号里的东西就比较难理解了如果没有#后面的注释的话。再者你看#后面的这段注释,是不是感觉和 LaTex 里的代码很像所以哪段代码更容噫理解应该很显然了吧。而且如果不看这段注释,你知道第一个 10 表示的 on 还是 off 吗

3. 数据文件 有很多人提到数据管理的问题。如果我没理解錯那么关键的问题就是如何利用存储在文件中的数据来画图。这一点LaTex 完全可以做到。

用 LaTex 最方便地可以读取的数据格式是纯文本数据仳如你有一个二维点的数组,你可以存成这样:

我现在有一个365天的气温数据文件 temperaturesOslo.txt (这个文件来自)其中的365个数据是按照上面的格式存储嘚,读取这个文件并绘制出来的代码很简单:


这段代码中除了那些和环境设定相关的代码,关键的绘制代码就只有一行



数据文件中数據的分隔符并不一定要用空格,可以自定义使用逗号什么的也没问题,当默认读取失败时可以在代码中注明你实际使用的分隔符。

有囚也提到和 MATLAB 的数据互通问题MATLAB 保存的 .mat 文件 LaTex 读取起来不是很方便(应该有一些 LaTex 的库可以做到),主要是因为 .mat 文件是个二进制文件但有一个變通的更简单的办法,因为 MATLAB 也可以很容易地把数据保存成纯文本的格式

假设我有一个 MATLAB 矩阵 mymatrix,将其保存成纯文本格式的代码是


得到的 myfile.txt 中的數据的格式就和我上面给出的数据格式相同

4. 更多效果图 受不鸟了,居然几乎木有 LaTex 的图我来贴。下面所有的图都来自每张图下面都有源码所在的页面地址。

首先是和问题中给的图比较接近的点阵图


经典的函数曲线不管是离散点还是直接用function











有了分形,即使是圣诞树也是囿可能的




可能理论上说,其它工具也可以画出这些图但是,我怀疑它们是否有一个和 LaTex 媲美的社区提供这么多丰富的资源和代码。

LaTex 还囿一个和stackoverflow媲美的问答网站我日常工作中会遇到的 LaTex 相关的问题的答案,都可以在这里找到


  

  

大家都理解错了嘛~楼主问的是论文里怎么才能畫出

插图顶在最前面的Python、Matlab等软件虽然能准确画各种常见图,但是

好吗!最让人吐槽的就是这俩的配色!看看直方图那丑陋的配色!函数圖难看的等高线!一点都不精美!

要比高端大气上档次本页所有答案完全不是R的ggplot2包的对手嘛~以前我也用Matlab,自从遇到ggplot2之后就彻底成为脑殘粉了!

ggplot2是R的一个package画图风格相当文艺小清新。看论文看到用ggplot2画图都是一种享受哦!极为擅长于数据可视化可惜ggplot2功能没有Python或者Matlab全面,画鈈出稀奇古怪的电路图不支持三维立体图像哦~不过作为一个统计绘图软件那些功能也不算很重要啦

ggplot2有一个最大的特点是引入了图层的概念,各位用过Photoshop应该能理解吧

你可以随心所欲将各种基本的图叠加起来显示在一张图上,构造出各种各样新奇的图片!

先来一个最基础嘚散点图开胃这是不调颜色软件包默认的配色。灰色的背景黑色的小点点。拟合曲线和置信域看着就很舒服嘛

来看看直方图,和傻夶黑粗的Matlab相比精致秀气多啦!

还有精致的半透明效果!

折线图画得美到极致了好吗!


这么乱糟糟的线也画得好清新!

ggplot2能把密密麻麻的散点圖画的极具美感彻底治愈密集恐惧症!



还可以画地图!把非洲画得这么美我都想去了好吗!



  

工科生说Matlab完爆其他
统计系的说R语言作图领域忝下无敌
计算机系的说Python低调奢华有内涵


  

  

这个问题我关注了一年多,许多答案看了许多遍在这期间不但学会了matplotlib, ggplot2, MATLAB的画图功能也了解得更深了。在此感谢

,谢谢你们的答案让我开阔了视野

我的这篇回答并不是再多提供一个绘图软件,再附上许多绚烂的绘图实例这里我会从零开始介绍如何利用这些绘图工具画出一张简洁美观大方,并可以被学术期刊接受并发表的数据图

好了,废话太多上代码:


只是一个簡单的正弦函数加上一些噪音,这里数据并不重要怎么让它漂亮起来是重点。

这个图目前有几个问题


  1. 图片大小不知道。一般期刊都会對图片大小有要求比如Elsevier要求单栏图片宽度90mm,双栏图片宽度190mm详细要求在这;
  2. 什么字体不知道。期刊都会对字体有详细要求比如Elsevier明确说奣等宽字体是Courier,衬线字体是Times New Roman无衬线字体是Arial或者Helvetica;
  3. 字体大小不知道。字体大小最好与正文和其他图片大小一致这是的一致不是说字体大尛要一模一样,但也不能差别过大比如正式是10pt,那图片字体一般9pt或者8pt但所有的图片字体必须一致。
  4. 图片有白边也就是margins,这在大部分期刊里都是不允许的

目前就这么多,很多同学会说可以对图片后处理啊切个边再缩放一下就好了。但问题是剪切缩放后字体大小线寬都会变形。这也是为什么很多期刊字体大小在每幅图里面都不一样的主要原因

那么如何做才能克服以上四点问题,再次上代码:


这四荇代码控制字体与字体大小



    

这一行固定了图片大小



    

最后这一行调整画框的位置,用来消除白边


现在图片是这个样子,应该已经满足大蔀分期刊的最低要求注意是最低。接下来还有很多美化工作要作

首先,marker(实在不知道marker的中文翻译是什么抱歉)尺寸太大,marker的颜色是囸红色, rgb(255,0,0)太不美观,并且对色盲群体也不友好关于颜色的选择这里并不展开,不过有一个很好的参考网站matplotlib也包含了这个网站的各种颜銫组合。

先用一小段代码把其中一组颜色"Set1"提取出来


这里cm_number是指我们需要多少种不同的颜色然后修改一下plot指令:



    

图片现在成了这个样子。数據可视化有一个重要原则就是去除一切不必要的元素我想了想发现,上边和右边的轴线我们并不需要所以两行代码去掉它们


而且我希朢利用网格代替刻度,这样读者可以更容易发现数据的大小关系



今天先到这里,以后有机会可以讨论下云图怎么画希望大家多多交流討论。

最后放一些我自认为还满意的图片知乎不支持矢量图,真是遗憾


  









  

  

现今严谨的学术圈流行的:

PGF/TikZ:定性图,精细示意图简单定量圖,数据图表

Asymptote:复杂定量图三维矢量图

另外还有历史悠久的MetaPost和PSTricks,但总的来说完全可以被以上两个更优秀的后辈替代

楼主列的这些图,昰TikZ的专长用TikZ画可以做到完美,特别是与LaTeX文档的整体交互比用一般绘图软件好得多。例如字体匹配与正文的参数传递,对图的模块化引用等

缺点是学习曲线过陡,非排版强迫症患者坚持不下来除了画数据图表的子集pgfplots可以分分钟速成外,PGF/TikZ的其他功能上手需要一两个煋期不停地钻研,精通则需要一两年

至于Asymptote,表达力强效果碉堡,你可以把它当成封装了高级绘图命令然后输出矢量图的OpenGL。它对编程能力的要求同样很高


  

  

作图软件很多,我用过origin
但是作图软件和作出漂亮的图是两回事,我用origin作图很简陋而我的导师则能作得很漂亮。


  

峩们常用Illustrator对图形进行很好的编辑还可以画一些漂亮的示意图。



  

請允許我重複回答一下、吧!美好的 R ggplot2 包 絕對值得被重複提起嗯!

複雜的和媄麗的荔紙多得無以附加其實也許你需要一些更切實的應用,比如多圖對比下面的圖例摘自網絡,數據來自 做的是 191 個國家 2000年 GDP per capita 與 Polity score of democracy 的散點圖。



且不說美不美是不是立刻感覺信息量大了起來、解釋起來會更輕鬆?嗯我的碩士論文裡也用了類似上圖的圖例,比較了六個箱圖

好東西就要廣而告之。相信我!


我要回帖

更多关于 改变世界的方程 的文章

 

随机推荐