我一直试图在 TikZ 中绘制一系列 X、Y 点的图形,但它不接受我的点,所以我正在寻找一个可以更好地处理缩放的替代包。我一直试图绘制的点是从文本文件导入的,看起来像这样:
0 -5181.542311
0.001388889 -5180.244522
0.002777778 -5176.351945
0.004166667 -5169.866943
0.005555556 -5160.793459
0.006944444 -5149.137011
0.008333333 -5134.904699
0.009722222 -5118.1052
0.011111111 -5098.748774
...
对于此类数据,有什么合适的替代方案吗?
答案1
如果没有更多关于你尝试的操作和相关错误消息的详细信息,很难确定原因tikz 不会接受积分。
\pgfplotstableread
下面是一个使用从外部文件读取数据的示例。在这里我使用了包裹filecontents
创建外部文件并将其打包成可编译的示例,但如果您已经在外部文件中拥有数据,则不需要这样做。
\documentclass{article}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents*}{data.dat}
0 -5181.542311
0.001388889 -5180.244522
0.002777778 -5176.351945
0.004166667 -5169.866943
0.005555556 -5160.793459
0.006944444 -5149.137011
0.008333333 -5134.904699
0.009722222 -5118.1052
0.011111111 -5098.748774
\end{filecontents*}
%
\begin{document}
\pgfplotstableread{data.dat}{\MyDataTable}
\begin{tikzpicture}
\begin{axis}
\addplot [blue, ultra thick, smooth] table {\MyDataTable};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
渐近线可能会提供您想要的结果。它的语法类似于 C,但并不难。它非常适合绘制线条和数字等。他们网站上的 2D 图库可能会让您很好地了解它能做什么以及它是否能满足您的需求。
答案3
有许多替代工具可以完成您想要做的事情,但我个人不建议您从 TikZ 切换(记录显示,除了极少数情况外,我不会使用 TikZ)。TikZ 非常强大,可以轻松解决您的问题。如果您在遇到最小的障碍时就放弃该工具,那么您将永远无法成为任何事物的大师。话虽如此,对您来说最简单的解决方案可能是使用 MATLAB 语言。我想我可以编写 3-5 行脚本来执行您想要的操作。如果您没有真正的 MATLAB,您可以在其中一个免费克隆中执行脚本(我最喜欢的是自由垫)。稍微复杂一点的是使用Python 的 Matplotlib。然后更复杂的是使用 PSTricks。然后有人已经建议使用 Asymptote(具有类似 C++/Java 的语法,这对于像我这样讨厌 Java 的人来说是一个很大的障碍)。你可以把它看作是 MetaPost 的增强版,也可以使用。我相信可以使用一些 Perl、Ruby、Lua 库(插入你最喜欢的脚本语言)来实现。如果你是一个受虐狂,你甚至可以用纯 C 来实现(我喜欢 C 并且每天都在用它,但它不是为此而创建的)。
答案4
我建议使用统计编程语言 R,我已经使用了很多年了。它是开源的,因此可以免费使用。它还有一个非常活跃的用户社区。特别是 ggplot2 包提供了一种很棒的数据可视化方式,而不仅仅是绘制图片。有一个YouTube 上的视频ggplot2 作者提供了一些背景知识。另请参阅ggplot2 的网页看到很多例子。
基本工作流程就是在 R 中制作插图、生成 PDF 并将该 PDF 包含到 Latex 中。
学习 R 的另一个好处是它能做的远不止画图。这包括数据处理、统计分析等等。