我原本以为这可能与gnuplot相同- X系列的开始 - Stack Overflow - 但我认为这稍微更具体一些.
既然我有兴趣找到"X系列的开头",可以这么说 - 我会试着用一个例子来澄清; 说你有这个脚本:
# generate data
system "cat > ./inline.dat <<EOF\n\
10.0 1 a 2\n\
10.2 2 b 2\n\
10.4 3 a 2\n\
10.6 4 b 2\n\
10.8 5 c 7\n\
11.0 5 c 7\n\
EOF\n"
# ranges
set yrange [0:8]
set xrange [0:11.5]
plot "inline.dat" using 1:2 with impulses linewidth 2
Run Code Online (Sandbox Code Playgroud)
如果你绘制它,你会注意到数据从x轴上的10开始:

现在,当然你可以调整xrange- 但有时你会对"从0开始"的"相对位置"感兴趣,可以这么说.因此,人们希望看到数据在x轴上"向左移动",因此它从0开始.由于我们知道数据从10.0开始,我们可以明确地从第一列中减去该数据:
plot "inline.dat" using ($1-10.0):2 with impulses linewidth 2
Run Code Online (Sandbox Code Playgroud)
......这基本上就是诀窍.
但是说你不想在 …
我使用Gnuplot绘制我的数据,以及线性回归线.目前,这条线的"标题",其方程由Gnuplot计算,只是"f(x)".但是,我希望标题是回归线的等式,例如"y = mx + c".
我可以通过从绘图信息输出中读出'm'和'c'手动完成此操作,然后使用新标题重新绘制.我希望这个过程是自动化的,并且想知道是否可以这样做,以及如何去做.
我有以下文件我想用gnuplot条形图绘制:
Function X X-ERROR Y Y-ERROR
A 1.311539 0.066268 1.000000 0.000000
(a1,b0) 1.325429 0.083437 1.010926 0.016710
(a.9,.b1) 1.134640 0.040017 1.276168 0.060281
(a.8,.b2) 1.078336 0.058529 1.346358 0.054645
(a.7,.b3) 1.035866 0.060660 1.318395 0.018087
(a.6,.b4) 0.982717 0.047363 1.196714 0.047427
(a.5,.b5) 0.962423 0.051994 1.127991 0.044731
(a.4,.b6) 0.953673 0.046014 1.139608 0.044726
(a.3,.b7) 0.948948 0.050462 1.169209 0.044333
(a.2,.b8) 0.941013 0.047166 1.198138 0.045844
(a.1,.b9) 0.929961 0.057801 1.328111 0.088813
(a0,b1) 0.966331 0.036079 3.289381 0.213192
B 1.000000 0.000000 3.321802 0.121290
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法完美地绘制图形:
plot 'file.dat' using 4:xtic(1) title col, \\
'' …Run Code Online (Sandbox Code Playgroud) 我想在gnuplot的直方图中添加一条水平线,这可能吗?
我的直方图在x轴上:alea1 alea 2 alea3 nalea1 nalea 2 nalea 3,y轴从0到25.
在22,我想添加一条横线,从直方图的一端到另一端.
在gnuplot中,我可以使用此命令将键放在绘图外:
set key outside;
set key right top;
Run Code Online (Sandbox Code Playgroud)
但是,如此页面所示,键的放置将自动调整绘图区域的大小,使得生成的图像的大小保持不变.是否有一种简单的方法可以保持绘图区域相同,无论我将键放在绘图区域外的哪个位置?
以下gnuplot代码工作正常:
plot 'data.txt' using 2:4 ' %lf %lf %lf %lf' title "1 PE" with linespoints;
Run Code Online (Sandbox Code Playgroud)
在下面的代码中,我想说:"使用第4列中的数字,然后将其除以第3列中的数字".或者:"使用第2列中的数字,但将其除以常数2.0".以下代码演示了我尝试实现的内容,但它不起作用.
plot 'data.txt' using 2:4/4 ' %lf %lf %lf %lf' title "1 PE" with linespoints;
plot 'data.txt' using 2:4/2.0 ' %lf %lf %lf %lf' title "1 PE" with linespoints;
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?
我想在我的情节中绘制一个空矩形.
到目前为止,我有:
set style rect back fs empty border lt 3
set object 1 rect from 1,1 to 2,2
Run Code Online (Sandbox Code Playgroud)
我的矩形用虚线表示.如何更改线条的颜色?lc在边界之后似乎不起作用.我也试过设置一个新的线条样式和边框,但我没有成功.
谢谢!
我想做类似这个问题的事情:gnuplot:在单个图中绘制来自多个输入文件的数据.
我想同时绘制目录中的所有文件,而不必显式写入其名称.所有文件的列号都相同.我能做什么?
做plot for [file in *] file u 3:2不起作用.
另外,我不希望每个文件都有不同的图例.所有文件中的所有点都应该被视为相同,就像它们都来自单个文件一样.
我知道有几篇关于如何更改gnuplot字体大小的帖子.但是,在我的代码中,即使我在之前的帖子中采用了解决方案,输出数据也没有变化.我的代码是:
set terminal png size 1280, 480;
set xrange [0:100]
set yrange [0:1]
set xlabel 'n'
set ylabel 'x_n'
set tics font ",1"
set output './time_series/r'.i.'.'.j.''.k.''.l.'.png';
set title 'r = '.i.'.'.j.''.k.''.l;
do for [i=0:3]{
do for [j=0:9]{
do for [k=0:9]{
do for [l=0:9]{
plot './time_series/r'.i.'.'.j.''.k.''.l.'.txt' every ::0::100 with linespoints ls 1 ps 1 pt 7 notitle
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
该命令对我输入的任何数字都没有影响,即
set tics font ",a number"
Run Code Online (Sandbox Code Playgroud)
任何数字都会生成相同的字体.我错过了什么吗?
谢谢大家.
更新:谢谢拉斐尔.这是两个png产生的.第一个是[set tics font",1"].第二,[设置抽搐字体",10"].

已经有一篇文章询问如何在matplotlib中的2D坐标系中绘制非正交轴. 在matplotlib中绘制非正交轴? 我想知道如何在3D情况下绘制这样的轴?假设z轴垂直于xy平面,而x轴和y轴不垂直.例如,如何在曲线系统中绘制(1,2,0)和(3,2,0)的散射三维图?不限于使用matplotlib.谢谢!