尝试绘制单个值时出现奇怪的行为

2024-05-02

我正在使用以下 Gnuplot 脚本:

#####  Definitions  ####
a=0.3
s0=10.
s1=-9.999
r1u(x)=-exp(x)*(-1+a+a*exp(x))/((1+exp(x))**3)
r2u(x)=exp(x)*(1-exp(x))*(-1+a+a*exp(x))/((1+exp(x))**4)
f1(c,d)=s0*c*(1-2*a)/2. + s1*r1u(d)
f2(c,d)=1./(3.*c) - s0*c/6. + s1*r2u(d)
dummyx(z)=25.
dummyy1(z)=.08
dummyy2(z)=.06

#####   Prologue   #####
clear
reset

######  Plot data   #####
set zeroaxis
set key title 'plot of dw/dt'
plot '019999.rrp' using 1:(f2(($4),($5))) with linespoints linewidth 2 notitle
pause -1
stats '019999.rrp' using 5 nooutput
do for [i=0:int(STATS_records-1)] {
    reset
    set term x11 1
    set key title '-x0/w at t'.i.' and its position on the "source term" curve'
    set xrange [STATS_min:STATS_max]
    set label 1 sprintf("t = %3.0f",i) at 25,.04
    set label 2 'w is' at 19,.08
    set label 3 'dw/dt is' at 19,.06
    plot '019999.rrp' every ::i::i:1 using 5:(r1u($5)) linewidth 5 notitle,\
         '019999.rrp' every ::i::i:1 using (dummyx($1)):(dummyy1($1)):4 with labels notitle,\
         '019999.rrp' every ::i::i:1 using (dummyx($1)):(dummyy2($1)):(f2(($4),($5))) with labels notitle,\
         r1u(x) with lines lw 2 notitle
    pause -1
}

和最后一个f2(($4),($5))没有做它应该做的事。它只是情节($5)。然而第一个f2(($4),($5)) works.

绘制的文件在这里:http://we.tl/SPX4ykaX4j http://we.tl/SPX4ykaX4j。我不知道提供链接是否是一个好习惯,所以这里是该文件的头部,足以重现错误。

0.0000000E+00  -15.00000      -60.00000      0.4472136       33.54102    
0.2500000      -14.77640      0.8944144      0.4472048       33.04168    
0.5000000      -14.55279      0.8944079      0.4472023       32.54186    
0.7500000      -14.32919      0.8944058      0.4472016       32.04191    
1.000000      -14.10559      0.8944051      0.4472014       31.54192    
1.250000      -13.88199      0.8944049      0.4472013       31.04193
1.500000      -13.65839      0.8944048      0.4472013       30.54193    
1.750000      -13.43479      0.8944047      0.4472013       30.04193    
2.000000      -13.21119      0.8944047      0.4472013       29.54193    
2.250000      -12.98759      0.8944047      0.4472013       29.04193    
2.500000      -12.76398      0.8944047      0.4472013       28.54192    
2.750000      -12.54038      0.8944046      0.4472012       28.04193    
3.000000      -12.31678      0.8944047      0.4472013       27.54192    
3.250000      -12.09318      0.8944047      0.4472013       27.04192    
3.500000      -11.86958      0.8944047      0.4472013       26.54192    
3.750000      -11.64598      0.8944047      0.4472013       26.04192    
4.000000      -11.42238      0.8944047      0.4472013       25.54192    
4.250000      -11.19878      0.8944047      0.4472013       25.04192    
4.500000      -10.97517      0.8944047      0.4472013       24.54191    
4.750000      -10.75157      0.8944047      0.4472013       24.04191    
5.000000      -10.52797      0.8944047      0.4472013       23.54191    
5.250000      -10.30437      0.8944046      0.4472012       23.04191    
5.500000      -10.08077      0.8944047      0.4472013       22.54191    
5.750000      -9.857169      0.8944047      0.4472013       22.04191    
6.000000      -9.633568      0.8944047      0.4472013       21.54191    
6.250000      -9.409966      0.8944047      0.4472013       21.04191    
6.500000      -9.186366      0.8944047      0.4472013       20.54190    
6.750000      -8.962765      0.8944047      0.4472013       20.04190    
7.000000      -8.739163      0.8944047      0.4472013       19.54190    
7.250000      -8.515562      0.8944047      0.4472013       19.04190    
7.500000      -8.291961      0.8944047      0.4472013       18.54190    
7.750000      -8.068360      0.8944046      0.4472012       18.04190    
8.000000      -7.844759      0.8944047      0.4472013       17.54190    
8.250000      -7.621158      0.8944047      0.4472013       17.04190    
8.500000      -7.397556      0.8944047      0.4472013       16.54189    
8.750000      -7.173955      0.8944047      0.4472013       16.04189    
9.000000      -6.950354      0.8944047      0.4472013       15.54189    
9.250000      -6.726753      0.8944047      0.4472013       15.04189    
9.500000      -6.503151      0.8944047      0.4472013       14.54189 

问题已解决,如果您使用sprintf格式化函数值:

...
plot '019999.rrp' every ::i::i using (dummyx($1)):(dummyy2($1)):(sprintf("%g", f2(($4),($5)))) with labels notitle
...

可以使用以下简化示例重现相同的错误 (?):

set samples 11
set xrange [0:10]
f(x,y) = x+y
unset key

set multiplot layout 2,1
plot '+' using 1:1:(f($1,$1)) with labels
plot '+' using 1:1:(sprintf("%g", f($1,$1))) with labels
unset multiplot

我不知道这是否可以被视为一个错误。我将其报告为#1368 字符串列中数值表达式的转换 https://sourceforge.net/p/gnuplot/bugs/1368/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试绘制单个值时出现奇怪的行为 的相关文章

  • gnuplot - 用不同颜色绘制不同的块

    我有这样的数据file dat 2 2 5 5 7 3 100 102 130 80 116 134 40 100 50 60 61 58 我想用不同的颜色绘制每个块 没有特定颜色的限制 只是一些视觉上不同的颜色 我尝试过linetype像
  • gnuplot:误解数据(直方图)

    我有以下示例数据文件 我想在其中绘制gnuplot作为直方图 1 1 2 2 4 3 我正在使用以下命令来绘制数据 plot sample data with boxes 生成以下图表 然而 图表应该看起来像这样 不应该有任何价值3 Fro
  • 绘制堆叠和聚类的条形图

    如何用 gnuplot 绘制这样的图 The demos http gnuplot sourceforge net demo histograms htmlgnuplot 页面显示了一个类似的示例 这是该页面上的最后一个示例 并生成下面的图
  • 如何向 Gnuplot 直方图(平滑频率)添加数据标签?

    我的文件第 6 列中有蛋白质分子量数据 有问题的列如下所示 MW kDa 16 8214045562515 101 41770820613989 24 332255496943485 43 946599899844436 210 58276
  • 使用循环在 Gnuplot 中生成绘图

    我想使用 Gnuplot 生成几个图 这就是我需要使用循环的原因 数据从文件 sort i dat 加载 代码如下所示 但不起作用 我的主循环有一些问题 我不知道为什么它不起作用 也许它与我的 Gnuplot 版本有关 谢谢 do for
  • gnuplot - 将字符串变量转换为小写

    如何在 gnuplot 中将字符串转换为小写 这是一个 gnuplot 字符串处理问题 示例 我希望在 gnuplot 脚本中检查用户输入的参数 if tolower ARG2 ohms 因此接受 ohms Ohms 或 OHMS 首选是不
  • Gnuplot BibTeX 引用

    好吧 这不是一个正确的编程问题 但也许答案会对其他人有所帮助 我一直在尝试寻找合适的 BibTeX 条目gnuplot 包含在科学出版物中 我只是不想引用任何指南书 而是引用实际的软件 有谁有想法或曾经使用过吗 我希望找到类似的东西cita
  • Gnuplot - 使用带有 png 终端的 replot

    我正在尝试在 Gnuplot 中使用带有 png 终端的 replot 如果我执行以下操作 我会在一张图表上绘制两个图 没有任何问题 plot sin x x replot sin x 现在 如果对 png 终端类型执行相同操作 则生成的
  • 如何在顶部显示中线

    我有一个正在运行的方便脚本ab然后生成情节 然而有一个问题 它向我显示了每一点 这很好 但是我还想看到它们之间的平均 线 我会在图中展示更多 那么有没有办法在上面添加中 中游侠呢 Script usr local bin gnuplot s
  • 使用 Gnuplot 进行时间序列的线性回归

    我是 Gnuplot 的忠实粉丝 我在学习过程中一直将它用于各种项目 最近我想使用 Gnuplot 来绘制一些时间序列图 例如减肥 锻炼结果 气体消耗等 因此我像这样缩放x轴 set xdata time set timefmt d m Y
  • 如何在 gnuplot 多重绘图模式下输出文件?

    我正在 gnuplot 版本 4 6 patchlevel 5 多重绘图模式下绘制图表 这些图表正在使用重读进行更新 set multiplot layout 3 3 do for planeIter 4 10 3 for ringIter
  • 如何在 gnuplot 中设置时区?

    我有一个简单的 gnuplot 命令文件 set xdata time set timefmt s set format x H M 其中 x 时间戳列 结果 UTC 格式的时间 我可以更改 x 轴的本地时区吗 今天刚刚在文档中发现了这一点
  • Gnuplot:具有置信区间的线点

    我有以下数据 我想绘制一个图表 显示所有 x 与线 线点 连接的平均值 并显示所有置信区间 ci lower ci upper 我设法使用 2 个图来做到这一点 set xrange 0 1100000 set yrange 0 5000
  • 如何从 Perl 调用 gnuplot 脚本

    我有一个 gnu gp 文件 grphist conf set terminal canvas Terminal type set to canvas Options are solid butt size 600 400 fsize 10
  • 我应该如何格式化 .dat 文件以便制作 3D 矢量图?

    我正在为大学做这个编程任务 我们必须写一个c 计算 3D 空间中某些线圈的磁场矢量的程序 我已经成功编写了这个程序 并且我认为它运行得很好 不过 我想添加一个特殊的东西 这是我的试卷 所以它必须特别好 我想绘制出向量 我习惯打电话gnupl
  • gnuplot 中的块注释

    我有一个很长的 gnuplot 脚本 出于调试目的 我希望能够阻止该脚本的注释部分或使用 goto 语句 这可能吗 我知道我可以使用if陈述 if 1 2 commented out code else non commented out
  • GNUPLOT:尝试提高质量

    如何提高 gnuplot 的质量 看起来这是一个非常低分辨率的图像 这是我正在使用的文件的内容 linkage plot set terminal pdf set out linkage pdf set title Distribution
  • 字符串的 gnuplot 图

    是否可以传递字符串中的绘图数据 我的意思是做这样的事情 plot 09 13 2010 2263 80 09 14 2010 2500 using 1 2 with lines 可以做类似的事情 set xdata time set tim
  • 在 gnuplot 中创建仅带有箭头的向量

    如何创建一个没有线条而只有箭头的矢量 有一个名为 nohead 的选项 它删除了箭头的头部 但我想做相反的事情 删除矢量的线并只保留头部 最优选地还能够基于单个数字重新缩放该箭头的大小 找到了一些有用的建议TeX交换 https tex s
  • 如何为 gnuplot 创建数据文件?

    我正在尝试用 gnuplot 制作图表 我指定了我的xrange yrange and labels 但是当我输入以下命令时 gnuplot gt 使用 1 2 线条绘制 data txt gnuplot 告诉我 警告 跳过不可读的文件 d

随机推荐