我正在寻找一个命令行工具(适用于Linux)来生成数据文件的图表。一开始我尝试使用gnuplot,但它的曲线拟合能力不太好。然后我尝试了R,但我找不到一种方法来写一个向量(在符号上方加小箭头)或热平均值(\left \langle \right \rangle 在LaTeX中)。是否有任何隐藏的插件可以完成此任务?
以下是一种制作方法。输入文件应该有一个或多个数据列的格式。如果有两列或更多列,第一列将被用作X坐标在X,Y图中。
#! /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()
split(",")
。你可能还需要读取一行列标题:headers = sf.readline().split(",")
。 - Brent Bradburn在与xplot相同的精神下,您还可以使用ctioga2
:http://ctioga2.sf.net。绘制文本数据文件就像这样简单:
ctioga2 data.dat
Plot-000.pdf
的PDF文件。但是,它不适合数据。有没有命令行工具
我理解这句话的意思是你想直接从Linux(例如Bash)命令行创建图形,而不需要在其他语言中创建脚本。
看起来答案是:实际上没有,除了一个例外:xplot
像大多数x*
实用程序一样,它的用户界面非常“非现代化”。但它可以从简单的命令行生成图形,例如xplot a.txt b.txt
。
我非常惊讶你认为gnuplot在曲线拟合方面表现不佳。在我的经验中,gnuplot在这方面是无与伦比的。但是我的经验确实有限,所以您可能更了解。
无论如何,我找到了这个链接,希望能对您有所帮助: http://www.cs.hmc.edu/~vrable/gnuplot/using-gnuplot.html 它有一个关于曲线拟合的部分。