1

我根据 stackoverflow 上的输入创建了我的第一个图表。所以我的代码是,

set title "Approximation Graph"
set term png
set output 'plot.png'
f0_h(x) = a0_h * x**2 + b0_h * x + c0_h
fit f0_h(x) 'clk0_h' via 'clk0_h_c'
f1_h(x) = a1_h * x**2 + b1_h * x + c1_h
fit f1_h(x) 'clk1_h' via 'clk1_h_c'
f0_s(x) = a0_s * x**2 + b0_s * x + c0_s
fit f0_s(x) 'clk0_s' via 'clk0_s_c'
f1_s(x) = a1_s * x**2 + b1_s * x + c1_s
fit f1_s(x) 'clk1_s' via 'clk1_s_c'

set style data lines
plot "clk0_h" using 1:2, f0_h(x), "clk1_h" using 1:2, f1_h(x), "clk0_s" using 1:2, f0_s(x), "clk1_s" using 1:2, f1_s(x)

图表是:

在此处输入图像描述

所以我有主要和次要的问题。

主要:是否可以使用 gnuplot 确定系数。截至目前,我手动确定。(由于某种原因,我不能在 python 中使用 numpy 来确定系数)

未成年人:任何人都可以参考我的线路属性。1)增加线宽 2)改变颜色 3)为每一行添加一个标题(以区分它们是否具有相同的颜色) 4)就像我应该有 8 行但有些被覆盖

4

1 回答 1

1

关于你的第一个问题:这fit实际上是这样做的。在您的脚本中,via 'file.par'您只需设置起始值并指定要用于拟合的变量。

只需尝试以下操作:

f0_h(x) = a0_h * x**2 + b0_h * x + c0_h
fit f0_h(x) 'clk0_h' via a0_h, b0_h, c0_h

看看,如果系数出来好。默认情况下,假定起始值为1. 如果它不起作用,您可能需要设置正确的数量级(例如a0_h = 10在拟合之前设置)。

关于线属性的次要内容, uselinewidthlinecolor。要指定标题,请使用title :).

您可以linestyle为每个函数/数据组合定义一个,并使用拟合线和数据点:

set style line 1 linecolor rgb 'red' linewidth 2 pointtype 4 linetype -1
set style line 2 linecolor rgb '#ff7700' pointtype 7 linetype 2
...

在这种情况下,如果您指定linecolorand linetype,则第一个确定颜色,第二个确定虚线图案(终端支持它,请参阅Gnuplot line types)。

对于绘图,使用上述线型定义,使用例如

set style data points
set style func lines # these two settings are default

plot "clk0_h" using 1:2 linestyle 1 title 'clk0_h, data', \
     f0_h(x) linestyle 1 title 'clk0_h, fit'
...

你应该考虑使用pngcairo终端,它可以创建更好的图形。或者,最好使用基于矢量的终端,例如pdfcairo.

于 2013-10-17T19:27:25.443 回答