我正在寻找一个命令行工具(用于linux)来生成数据文件中的图。我一开始尝试使用gnuplot但它的曲线拟合能力并不是那么好。
然后我尝试了R但是我找不到一种方法来写一个矢量(标志上的小箭头)或热平均值(LaTeX中的\ left \ langle \ right \ rangle)。
我有一些隐藏的插件可以找到任何我找不到完成任务的插件吗?
答案 0 :(得分:5)
这是你制作一种方式的一种方式。输入文件应使用一列或多列数据进行格式化。如果有两列或更多列,则第一列用作X,Y图中的X.
#! /usr/bin/env python
import sys
import matplotlib.pyplot as pyplot
for filename in sys.argv[1:]:
with open(filename,'rt') as sf:
table = []
for line in sf: table.append( [float(val) for val in line.split()] )
table = [ row for row in table if len(row) ] ## remove empty rows
if len(table[0]) == 1 : pyplot.plot( [y[0] for y in table ] )
for x in xrange(1,len(table[0])): pyplot.plot( [ y[0] for y in table ], [ y[x] for y in table ] )
pyplot.show()
答案 1 :(得分:1)
有一组命令行工具(mgl2png,mgl2eps,mgl2svg,...)可以生成带有绘图的图片。但是他们使用自己的脚本语言MGL(相当简单快速)。它是GPL库MathGL的一部分。
答案 2 :(得分:1)
是否有命令行工具
我解释这意味着你想直接从linux(例如Bash)命令行创建绘图而不用其他语言创建脚本。
似乎答案是:不是真的,只有一个例外:xplot
与大多数x*
实用程序一样,它具有非常“不现代”的UI。但它可以从简单的命令行生成图,例如xplot a.txt b.txt
。
答案 3 :(得分:1)
与xplot一样,你也有ctioga2
:http://ctioga2.sf.net。绘制文本数据文件就像
ctioga2 data.dat
生成Plot-000.pdf
PDF文件。但是,它不适合数据。
答案 4 :(得分:0)
你试过PGF/TikZ吗?它可能需要一段时间才能适应它,但它有一流的LaTeX集成(毕竟它是LaTeX的一个库),这个网站上有很多例子。
在弄清楚语法之后,您可以编写一个简单的脚本,以适当的格式转换您需要的所有数据。
查看GNUPLOT basics文章。它将向您展示如何使用PGF / TikZ调用Gnuplot,然后从外部文件加载结果。
答案 5 :(得分:0)
我非常惊讶你的评估,即gnuplot不擅长曲线拟合。根据我的经验,gnuplot对于这种工作并不相同。但我的经验肯定是有限的,所以你可能会知道更多。
无论如何,我发现了这个,虽然它可能有所帮助: http://www.cs.hmc.edu/~vrable/gnuplot/using-gnuplot.html 它有一个关于曲线拟合的部分。
答案 6 :(得分:0)