【问题标题】:Gnuplot issue with plot with lines command使用线条命令绘制的 Gnuplot 问题
【发布时间】:2016-11-10 21:28:01
【问题描述】:

我对带有 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

如下代码

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 未被识别为内部或外部命令”并且它正在跳过而不绘制任何内容。我想要线条而不是线条的情节。

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    如果我错了,请纠正我,您可能混淆了三元运算符的含义吗?

    A?B:C表示如果A为真,则使用B,否则使用C。

    所以(($1==i)?$2:1/0):3 意味着对于第 1 列的值等于 i 的线,绘图使用第 2 列的值作为 x 坐标,第 3 列的值作为 y 坐标。每次迭代只有一行(第一次迭代中的第一行,第二次迭代中的第二行等)满足此标准,因此每次迭代只能得到一个点。

    (($2==i)?$1:1/0):3 表示对于第 2 列的值等于 i 的行,使用第 1 列中的该行值作为 x 坐标,并使用 column 的值3(再次)作为 y 坐标。这个命令应该在那个文件上工作,从你的数据中判断。所以我不知道出了什么问题。也许它们超出了您的绘图范围。注释掉 range 说明符,看看你是否看到了什么。 Gnuplot 支持自动缩放。

    但是,如果所有这些对您来说都很清楚,但您只需要点之间的线条,我不知道如何实现这一点。

    还有你的最后一句话“我想要用线条代替线条的情节。”是模糊的。

    提示是使用terminal qtterminal wxtterminal x11 来获得交互式弹出式绘图窗口,而不是epslatex,您可以稍后在准备好生产时使用。然后更容易进行实验。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 2017-07-25
      • 2011-06-02
      • 1970-01-01
      • 2011-11-18
      相关资源
      最近更新 更多