我有一个c ++代码,每当变量数为" .txt"文件。 我正在使用一个bash脚本加载txt文件并将它们发送到gnuplot脚本。然后我必须在同一个图中绘制每个相同的2列(代表高度与时间的关系图)。
我的问题是 x坐标(第1列txt文件)总是没有完成相同的值,而当x坐标的最后一个值不为零时,我需要在gnuplot图中插入一个十字。你知道怎么做吗?
这就是我绘制多个文件的方式
plot for [object in objectnames] object.".txt" using 1:2 w l title object
其中" objectnames" 是一个包含BASH发送的所有文件名的字符串
现在,为了绘制CROSSES,我想了两个方法:
将一组坐标发送到gnuplot脚本,然后设置一些标签,但GNUPLOT不喜欢数组,我不能用这种方式创建一个可变数量的标签。
另一种方法是以某种方式读取gnuplot脚本中的txt文件,但我不知道该怎么做。
感谢您的帮助
修改
BASH SCRIPT
export DATA_DIR=${1:-/home/../output}
export objectname
space=" "
OUT_FILES="$(find -L $DATA_DIR -name '*_Trajectory.txt')"
for file in $OUT_FILES; do
fig=$(basename "$file")
objectID=$(echo $fig| cut -d'_' -f 1)
# filenames concatenation
objectname=$objectname$objectID$space
done
export figNameAltitude="${file/${fig}/altitudePlot.png}"
gnuplot -e "folder='${DATA_DIR}';objectnames='${objectname}';figName='${figNameAltitude}';lineWidth='${linewidth}'" altitudePlot.gp
GNUPLOT SCRIPT(我避免插入关于标题,轴等的所有行)
plot for [object in objectnames] folder.'/'.object."_Trajectory.txt" using 1:2 w l lw lineWidth title object
答案 0 :(得分:0)
这可能会有所帮助
startTW = time.time()
fetchinTW = """SELECT col.vessel_hash,ST_X(col.the_geom) AS long, ST_Y(col.the_geom) AS lat
FROM samplecol AS col
WHERE col.timestamp >='2016-06-10T00:00:00.000Z' and col.timestamp <= '2016-07-10:00:00.000Z' """
cursor.execute(fetchinTW)
end_query3 = time.time()
print "Time to execute query: ", end_query3 - start_TW
以** $ ** gnuplot filename
执行脚本文件