标签: gnuplot

for 循环内的 gnuplot 线性拟合

我有一个脚本可以正确绘制 100 个单独的数据文件。现在我想对for循环中的每个图进行线性拟合。但是,当我的脚本到达fit命令时崩溃,并显示消息“正在跳过不可读的文件“f(x) = a100*x + b%d”。任何人都可以帮助正确的语法吗?谢谢。

plotfile = "graph.eps"
set output plotfile
n=100
filename(n) = sprintf("%d_mod.int", n)
fstr(n) = sprintf('f(x) = a%d*x + b%d ' , n)
plot for [i = 1:n] filename(i) u 1:2 title sprintf("%d", i) w lp
fit for  [i = 1:n] fstr(i) filename(i) u 1:2 via a, b
Run Code Online (Sandbox Code Playgroud)

gnuplot

4
推荐指数
1
解决办法
2334
查看次数

GNUplot 输入文件名作为变量

我想将文件名作为变量输入到 GNUplot 中。我编写了一个 gnuplot 脚本,其中包括以下几行:

path="path/to/file"
plot "< cat $path | sed '1,4d'" using 1:2
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,gnuplot 窗口打开,但里面没有任何内容。如果我替换$path为实际路径,则图表将正确绘制。

请问您能建议一种方法吗?谢谢。

variables bash gnuplot

4
推荐指数
1
解决办法
8467
查看次数

x 范围无效 GNUplot 时间和日期

我正在尝试绘制从数据记录器获得的数据,但我不确定为什么会收到 xrange 无效错误。

\n\n

下面是我的最小脚本和我试图绘制的数据示例。它们都有相似的标题,我认为这是问题所在,但我尝试#commenting它们或删除它们,但这不起作用。如果解决方案可以包括一种让我在不弄乱标题的情况下执行此操作的方法,那就太好了,可以节省我很多时间。

\n\n

为了数据保护,我已将标题更改为字母 A,但它给出了相同的错误。

\n\n

最小代码

\n\n
    #!/gnuplot\n\nset datafile sep ','\nset xdata time\nset timefmt '%d/%m/%Y,%H:%M:%S'\n\n\n\n#DATA FILES\nplot 'PAS.csv'   using 2:4 title 'Passive'  with points pt 5 lc rgb 'red'   axes x1y1,\\\n     'ACT.csv'   using 2:4 title 'Active'   with points pt 5 lc rgb 'blue'  axes x1y1,\\\n     'RISK.csv'  using 2:4 title 'Risk'     with points pt 5 lc rgb 'black' axes x1y2\n
Run Code Online (Sandbox Code Playgroud)\n\n

数据

\n\n
AAAAAAAAA   \nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n\nTimestamp,Date,Time,Value,Units  \n1415879007,13/11/2014,11:43:27,0.011,\xc2\xb5A \n1415878407,13/11/2014,11:33:27,0.045,\xc2\xb5A \n1415877807,13/11/2014,11:23:27,0.003,\xc2\xb5A\n1415877207,13/11/2014,11:13:27,0.056,\xc2\xb5A\n1415876607,13/11/2014,11:03:27,-0.036,\xc2\xb5A\n1415876007,13/11/2014,10:53:27,-0.046,\xc2\xb5A \n1415875407,13/11/2014,10:43:27,-0.039,\xc2\xb5A \n1415874807,13/11/2014,10:33:27,-0.050,\xc2\xb5A \n1415874207,13/11/2014,10:23:27,0.051,\xc2\xb5A \n1415873607,13/11/2014,10:13:27,-0.014,\xc2\xb5A \n1415873007,13/11/2014,10:03:27,0.035,\xc2\xb5A \n1415872407,13/11/2014,09:53:27,0.054,\xc2\xb5A \n1415871807,13/11/2014,09:43:27,-0.006,\xc2\xb5A \n1415871207,13/11/2014,09:33:27,-0.049,\xc2\xb5A \n1415870607,13/11/2014,09:23:27,0.000,\xc2\xb5A \n1415870007,13/11/2014,09:13:27,0.048,\xc2\xb5A …
Run Code Online (Sandbox Code Playgroud)

time gnuplot

4
推荐指数
1
解决办法
2万
查看次数

正确设置时间的 xrange

我尝试绘制一个包含格式时间戳YEAR-MONTH-DAY HOUR和由制表符分隔的正整数的文件。GNUPlot 似乎无法提取给定文件的开始结束时间告诉我

警告:空 x 范围 [6.31152e+08:6.31152e+08],调整为 [6.2484e+08:6.37464e+08]

但即使明确告诉 xrange 也不会改善结果

“sumChangePlot.p”,第 12 行:无法使用空 x 范围进行绘图!

这是我的绘图文件的相关代码

set datafile separator "\t"
set xdata time
set timefmt '%y-%m-%d %H'
set xrange ['2014-11-06 00':'2014-11-12 24']
Run Code Online (Sandbox Code Playgroud)

这是我的数据文件的摘录(包含 12 日之前的此类数据)

2014-11-6 19    1
2014-11-6 20    1
2014-11-6 21    2
2014-11-6 22    2
2014-11-6 23    2
Run Code Online (Sandbox Code Playgroud)

如何使 GNUPlot 理解文件中给出的 xrange?(首选自动,但如果手动是唯一的选择,那就这样吧)

gnuplot

4
推荐指数
1
解决办法
5777
查看次数

如何在 gnuplot 中使用子字符串

我想使用列中的子字符串绘制数据文件。我的数据文件包含以下格式的数据

1 (15, 3): dX: -1.619, dY: 3.315, dXSc: 0.981, dYSc: 0.993
2 ( 4,16): dX: -0.540, dY: -0.540, dXSc: 0.992, dYSc: 0.977
...
Run Code Online (Sandbox Code Playgroud)

我想绘制括号之间的数字,(x,y)类似于:yx

plot "data.dat" u substr(($2),7,8 ):substr(($2),10,11)
Run Code Online (Sandbox Code Playgroud)

正确的语法是什么?

substring gnuplot

4
推荐指数
1
解决办法
2677
查看次数

Gnuplot 直方图,显示 Y 中字符串出现的次数

我正在使用 gnuplot,在我目前的情况下,我想绘制如下数据:

/test1.html
/test1.html
/test1.html
/test2.html
/test1.html
/test2.html
Run Code Online (Sandbox Code Playgroud)

我想要创建的直方图显示:在 Y 中 X 中的计数,在上述数据中找到的每个字符串一个条目

所以根据上面的数据,直方图应该显示

  1. /test1.html 的条形达到 4
  2. /test2.html 的条形达到 2

提前致谢

gnuplot

4
推荐指数
1
解决办法
973
查看次数

gnuplot - 如何加粗并调整图表上的标签大小?

我使用下面的 gnuplot 上的配置来绘制折线图:

set style data histogram
set ylabel "Number of Received Packets"
set format y '%.0s %c'  #This is also another question I refer to at p.s, below
set style data linespoints
colorfunc(x) = x == 1 ? "#3399FF" : x == 2 ? "#00FF00" : x == 3 ? "#FF3333" : x == 4 ? "#00FFFF" : x == 5 ? "#003300" : "#FF00FF" 
plot for [COL=2:6] 'Histogram' using COL:xticlabels(1) title columnheader lt rgb colorfunc(COL)
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

在此输入图像描述

可以看到,y轴的标签和各轴上的值太小,不易读取。我怎样才能改变它们的大小并使它们加粗(或在最终图中调整它们的大小)?

ps:我还用来 …

gnuplot linechart

4
推荐指数
1
解决办法
7199
查看次数

在 gnuplot 中设置箭头标题

我使用箭头画了一条垂直线,我想给它加上标题,以便它显示在按键中。有办法做到吗?据我所知,手册中,titlefor 的语法中没有选项arrow,但我确信有一个解决方法。

我唯一想到的就是用与绘图范围之外的颜色相同的颜色绘制箭头并使用它的标题,但它相当笨拙。

我正在使用终端pngcairo,以防万一它相关。

gnuplot

4
推荐指数
2
解决办法
4429
查看次数

gnuplot:在多图模式下绘制单个调色板

我想就以下主题寻求一些帮助:

以下代码在同一页上生成 3 个图(3 行,1 列):

set terminal postscript color
set output "test.ps"
file="test.dat"

set palette rgb 33,13,10  
set cblabel "[km]"
set cbtics 2.5, 5, 20 format "%.0f"

set lmargin at screen 0.08
set rmargin at screen 0.88
# BUILD FROM BOTTOM TO TOP #
TOP=0.92  #
DY = 0.27 # DIMENSION OF Y

set multiplot
set grid
set offset 0, 0, graph 0.05, graph 0.05 

#unset colorbox
# BOTTOM GRAPH #
set xlabel "Second of the Week [s]"
set …
Run Code Online (Sandbox Code Playgroud)

gnuplot color-palette

4
推荐指数
1
解决办法
2300
查看次数

带有标签的 CSV 文件在 Gnuplot 中停止于第 1 行

我有一个文件要加载到 LibreCalc 中,它看起来像这样:

Volts,Inverter
23.02,0
23.20,0
Run Code Online (Sandbox Code Playgroud)

ETC。

只要我使用 VI 并删除第一行,它就可以很好地绘制。

但是当我直接输入文件时,绘图命令失败并显示

Bad data on line 1 of file xxxxx
Run Code Online (Sandbox Code Playgroud)

是否有办法让它跳过格式错误的错误行并继续前进?

gnuplot

4
推荐指数
1
解决办法
1486
查看次数

标签 统计

gnuplot ×10

bash ×1

color-palette ×1

linechart ×1

substring ×1

time ×1

variables ×1