f(x)gnuplot 中适合具有下一种形式的函数的正确方法是什么?
f(x) = A*exp(x - B*f(x))
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法将其与任何其他函数一样适合:
fit f(x) "data.txt" via A,B
Run Code Online (Sandbox Code Playgroud)
输出只是一句话:“ stack overflow”
我什至不知道如何寻找这个主题,因此任何帮助将不胜感激。
这种函数是如何调用的呢?嵌套?递归?隐式的?
谢谢
如何显示 gnuplot 的默认线条样式(对于给定的输出终端)?
我发现如果我定义自己的线条样式,我就可以显示它。但它不显示命令显示的默认样式的规范test。
gnuplot> show style line
gnuplot> set style line 44 lt 2 lc rgb "green" lw 2
gnuplot> show style line
linestyle 44, linetype 2 linecolor rgb "green" linewidth 2.000 pointtype 2 pointsize default pointinterval 0
Run Code Online (Sandbox Code Playgroud)
我想查看默认线条样式颜色的规范,以便我可以在包含我的绘图的网页中使用相应的颜色。
请注意,我不是在问“如何绘制特定的线条样式”,或“如何以图形方式显示线条样式的外观”(测试命令)。我问如何列出默认线条样式的(文本)描述。
我正在绘制一个基于时间的线图,并想向其中添加一个布尔数据系列。
是否可以让布尔数据突出显示值为 true 的图形画布的整个高度?
绘图文件:
set datafile separator ","
set terminal pngcairo size 800,400
set title "Solar charge monitor"
set yrange [0:]
set ylabel "V"
set y2range [0:]
set y2label "A"
set y2tics
set xlabel "Date"
set xdata time
set timefmt "%Y-%m-%dT%H:%M:%SZ"
set key left top
set grid
set output "samplePlot.png"
plot "sampleData.csv" using 1:2 with lines lw 2 title 'Batt (V)', \
"sampleData.csv" using 1:3 with lines lw 2 title 'Solar (V)', \
"sampleData.csv" using 1:4 with lines lw …Run Code Online (Sandbox Code Playgroud) 有了pointinterval,可以告诉Gnuplot何时在线上插入点.现在,通过将其设置为-1,该行不会通过该点.例如
pi -1
----<>----<>----<>----<>----<>----<>----<>----<>----<>----
pi 2
----<->----------<->----------<->----------<->----------<->----
Run Code Online (Sandbox Code Playgroud)
如您所见,使用-1以外的值将在该点内插入该行.
我想使用正pi数以减少可见点的数量,同时我想看到该线没有经过这一点.像这样的东西
----<>----------<>----------<>----------<>----------<>----
Run Code Online (Sandbox Code Playgroud)
怎么可能?
我的目标是在对数刻度上显示 0 值,略低于 1。
我设法with boxes用对数 Y 刻度绘制了自己的简单直方图 ( )。我的 Y 值是非负整数,最大为 25000。我无法区分 0 和 1 值,因为 Y 刻度从 1 开始。这在数学上是正确的,但我想在 1 的正下方添加一个零。
如果我要编写一个绘制图表的程序,我会向所有数据添加 1,并从 Y 标签中删除 1。有什么技巧可以为我做类似的事情吗?
是否可以定义其中定义了多个语句的函数?
我想通过定义函数来自动化创建堆积图所涉及的一些计算。特别是,我希望有类似的东西
mp_setup(bottom_margin, top_margin) = \
set tmargin 0; \
set bmargin 0; \
mp_available_height = 1.0 - top_margin - bottom_margin; \
mp_current_height = bottom_margin;
mp_plot(plot_height) = \
mp_plot_size = plot_height * mp_available_height; \
set origin 0,mp_current_height; \
set size 1,mp_plot_size; \
mp_current_height = mp_current_height + mp_plot_size;
Run Code Online (Sandbox Code Playgroud)
预期用途是:
...
set multiplot
mp_setup(0.05, 0.05)
mp_plot(1.0/3.0)
plot ...
mp_plot(2.0/3.0)
plot ...
Run Code Online (Sandbox Code Playgroud)
这应该会自动导致图很好地堆叠,而无需我计算每个图的原点和大小。
上面定义函数的方法不起作用,因为函数定义的解析似乎在第一次出现 ; 时结束;。但这些分号是必要的,以便分隔每个语句(否则,我们的set tmargin 0 set bmargin 0...语句是无效的)。
Gnuplot 似乎也不支持任何分组语句的方式(如{...}C/C++ 中的);或者至少,我从来没有遇到过。 …
我有这样的数据:
# c1 c2 c3
23 b 323
23 g 54
23 a 11
23 c 1
23 d 0
23 e 397
23 f 40
24 b 23
24 g 24
24 a 113
24 c 12
24 d 10
24 e 7
24 f 50
Run Code Online (Sandbox Code Playgroud)
我需要在 x 轴 (23,24) 上使用 c1,在 y 轴上使用 c3 来绘制不同的 c2 值,即每个 c2 值具有不同颜色的多个图表。

这个问题与 gnuplot 直方图相关:How to put values on top of bar。
我有一个数据文件file.dat:
x y1 y2
1 2 3
2 3 4
3 4 5
Run Code Online (Sandbox Code Playgroud)
和 gnuplot:
set style data histogram;
set style histogram rowstacked;
plot newhistogram 'foo', 'file.dat' u 2:xtic(1) t col, '' u 3 t col;
Run Code Online (Sandbox Code Playgroud)
现在我想将第 2 列和第 3 列的总和放在条形上方。显而易见的解决方案
plot newhistogram 'foo', 'file.dat' u 2:xtic(1) t col, '' u 3 t col, \
'' u ($0-1):($2+$3+0.2):($2+$3) notitle w labels font "Arial,8";
Run Code Online (Sandbox Code Playgroud)
将标签放在正确的位置,但计算出的总和是错误的。也就是说,在 …
我正在使用 gnuplot 生成一些 x 轴范围从 0 到 20 的绘图。是否可以将某些抽动或轴编号的颜色设置为与标准黑色不同的颜色?
我只找到了一种方法来将 x 轴中所有数字的颜色更改为红色set xtics textcolor rgb "red"。
我需要的是能够将抽动或数字的颜色更改为x=0,3,6,...红色,而所有其他颜色应保持黑色。这可以用 gnuplot 实现吗?
注意:我可以控制数据文件的格式,但它必须是单个文件。
我正在尝试使用 gnuplot 在同一个图表上绘制多个数据集。理想情况下我想绘制这样的东西:
data_1 0 0
data_2 0 0
data_1 1 1
data_2 0 1
data_1 2 2
data_2 1 2
Run Code Online (Sandbox Code Playgroud)
等等。在这种情况下,data_1和data_2应该是两条单独的曲线。
我还想避免将可能数据集的列表甚至数量放入 gnuplot 脚本中。基本上,我希望它按特定字段对数据点进行“分组”,并将每个组绘制为同一图表上的单独数据集。
作为最后的选择,我可以使用 grep 将原始文件分成每个数据集一个文件,并绘制这些文件(我想这更容易?),但我正在寻找一种使用单个文件来完成此操作的方法。