我正在寻找一种专业且高效的方法来创建科学图形。我想创建两种类型的图形(也许没有一种联合方法可以同时适用于这两种类型):
函数和数据图以及自由体型图。
到目前为止,我一直在使用 Mathematica 和 MathPSfrag,但现在这似乎太笨重了。我知道 gnuplot、TikZ 和 Inkscape,尽管我还没有广泛使用它们。所以我来这里寻求建议。
一些要求:
- 将 Pdf 输出到单独的文件,因为有些期刊希望这样。
- 使用 TeX 引擎对文本和数学进行排版,以使正文和图形中的文本看起来一致(可能通过添加 LaTeX 或 XeTeX 标题)。
- 跨平台(Windows/Linux)。
此外,请随意发布您创建图形的工作流程。
答案1
其他人已经指出pgfplots
,我也同意这一点。如果能有一些关于如何最好地使用它的具体指示,可能会很有用。不久前,我写了一篇关于 TUGBoat 的文章,但我会尝试在这里强调一些关键点。
首先要说的是,确切的工作流程将取决于你瞄准的期刊。例如,我需要将我的图的版本作为单独的文件,因此使用standalone
类(再次,这已经提到过)。另一种选择是使用“externalize”库来构建图,仅一次,特别是如果您希望提高 LaTeX 文档的速度。手册pgfplots
对此进行了详细描述。
同样,根据您要绘制的内容,将数据置于简单的文本格式(例如.csv
或制表符分隔)中会使生活更轻松。这样可以轻松获得一个简单的“样板”.tex
文件并插入数据(根据您的.tex
文件命名数据文件,您可以使用\jobname
它来添加数据)。
与数据呈现系统的选择没有直接关系的是颜色的使用:颜色可能非常有用,但需要谨慎使用。特别是,如果黑白就可以,那么并不是所有的期刊都热衷于彩色。
一些例子来自拖船文章(包含来源):
答案2
对于你所问的问题,最好的选择是pgf
,tikZ
并且pgfplots
有关自由体图,请参阅http://www.texample.net/tikz/examples/free-body-diagrams/. 几乎所有可以想象到的组合和涉及这些的问题都可以在 tex.sx 上找到,并且大多数包作者都是答案的积极贡献者。
答案3
我会仔细研究一下 matplotlib。这是一个与 scipy 和 numpy 相连的绘图包。对文本提供完整的 tex 支持。开始时有一个门槛,但一旦你进入它,你就可以创建非常高效的工作流程。
http://matplotlib.sourceforge.net/
Sage 是它的近亲,采用的方法更像 Mathematica。 http://www.sagemath.org/
答案4
R 是解决您的第一个问题的好方法(我不了解自由体图)。它提供了完整的统计分析环境,具有广泛的绘图功能。
数学注释是使用类似 TeX语言。例如,在 R 内部尝试:
demo(plotmath)
对于图形可能性,尝试
demo(graphics)
library(lattice)
demo(lattice)
R 还提供将图形保存为 pdf(以及 ps、jpeg、png、wmf...),并且适用于 Linux、Mac 和 Windows。