我有使用lines命令绘图的问题。我必须从一个巨大的数据文件中绘制360行。来自输入文件的示例数据是
-180.00000000,-10.00000000,0.00000000,0.01000000,0.00000000
-179.00000000,-10.00000000,0.07551000,0.01060500,0.04000000
-178.00000000,-10.00000000,0.15102000,0.01121000,0.08000000
-177.00000000,-10.00000000,0.22653000,0.01181400,0.12000000
-176.00000000,-10.00000000,0.30204000,0.01241900,0.16000000
-175.00000000,-10.00000000,0.37755000,0.01302400,0.20000000
-174.00000000,-10.00000000,0.45306000,0.01362900,0.24000000
-173.00000000,-10.00000000,0.52857000,0.01423400,0.28000000
-172.00000000,-10.00000000,0.60408000,0.01483900,0.32000000
-171.00000000,-10.00000000,0.67959000,0.01544300,0.36000000
-170.00000000,-10.00000000,0.75510000,0.01604800,0.40000000
-169.00000000,-10.00000000,0.73638000,0.02735300,0.38295000
-168.00000000,-10.00000000,0.71766000,0.03865800,0.36590000
关于followind代码
reset
set terminal epslatex size 13.1cm,6cm color colortext
set output 'C:\MajCha\gnuplot\alpha_cl.tex'
filename= 'C:\MajCha\gnuplot\DU_08-W-180-65_cf_c_02_InpPrePro.txt'
#
unset key
set xrange [-10:10]
set yrange [-3:3]
plot for [i=-180:180] filename using (($1==i)?$2:1/0):3
#
unset output
reset
以下代码
reset
set terminal epslatex size 13.1cm,6cm color colortext
set output 'C:\MajCha\gnuplot\alpha_cl_betaconst.tex'
filename= 'C:\MajCha\gnuplot\DU_08-W-180-65_cf_c_02_InpPrePro.txt'
#
unset key
set xrange [-180:180]
set yrange [-3:3]
plot for [i=-10:10] filename using (($2==i)?$1:1/0):3 with lines
#
unset output
reset
我也使用awk,在这种情况下,它显示“awk未被识别为内部或外部命令”,并且它在没有绘制任何内容的情况下跳过。我希望情节用线而不是线条。
答案 0 :(得分:0)
如果我错了,请纠正我,你是否混淆了三元运算符的含义?
A?B:C
表示如果A为真,则使用B否则使用C.
所以(($1==i)?$2:1/0):3
意味着对于第1列的值等于i
的行,使用第2列的vallue作为x坐标,将第3列的值作为y坐标。每次迭代只有一行(第一次迭代中的第一行,第二次迭代中的第二行等)满足此标准,因此您只能从每次迭代中获得一个点。
(($ 2 == i)?$ 1:1/0):3表示对于第2列的值等于i的行,在第一列中使用此行值作为x坐标,并使用列的值3(再次)作为y坐标。但是,此命令可以处理该文件,从而判断您的数据。所以我不知道出了什么问题。也许他们超出了你的绘图范围。假设range
说明符,看看你是否看到了什么。 Gnuplot shuold autoscale。
然而,如果所有这一切对你来说都很清楚,但你只需要点之间的界限,我不知道如何实现这一点。
也是你最后的感觉“我希望用线条代替线条。”很模糊
提示是使用terminal qt
或terminal wxt
或terminal x11
来获取交互式弹出式绘图窗口,而不是epslatex
,您可以在以后准备好时使用它用于生产。然后更容易实验。