标签: gnuplot

如何在左上角绘制原点?

gnuplot中的原点(0,0点)始终位于左下角,y值向上递增.

有没有办法将原点的方向修改为左上角,y轴从上到下递增,就像在成像中常用的坐标系一样?我正在使用gnuplot来绘制数据文件.

任何的想法?提前致谢.

gnuplot

3
推荐指数
1
解决办法
1918
查看次数

如何在多行中显示GNUPLOT键

我怎样才能在多行甚至列中显示gnuplot标题.事实上,我有8个头衔,而且我用这个:

set key below
Run Code Online (Sandbox Code Playgroud)

所以每个都显示在一个单独的行中.所以这个数字变得拥挤.

gnuplot legend

3
推荐指数
1
解决办法
8492
查看次数

没有边框的Gnuplot PNG文件

我希望将gnuplot png文件无缝混合到网站的背景页面颜色中。为具有特定rgb颜色规格的图设置背景矩形,并为html页面设置相同的rgb效果很好。

彩色gnuplot矩形:

set object 1 rectangle from screen 0,0 to screen 1,1 behind fc rgb "#d0d0e0" lw 0

HTML页面背景颜色:

<body text="#000000" bgcolor="#D0D0E0" link="#0000EE" vlink="#551A8B" alink="#FF0000">

现在,我想摆脱绘图周围的细黑线(而不是轴,而不是边框​​周围的线),以便它完美地融合到背景中。

我试图lw 0如上或设置矩形风格noborder或者border -1,但没有作品。我应该提到这是在gnuplot 4.6 patchlevel 0上。

您可以在我的页面上看到此问题:

http://drgert.dyndns.ws:8000/bmp085/bmp085.php

感谢您的帮助,格特

gnuplot border object set

3
推荐指数
1
解决办法
3274
查看次数

Gnuplot:如何通过调整页面大小和其他参数来避免PDF中的白边

这是我的代码:

set term pdfcairo enhanced dashed size 5,3;
set output "plot.pdf";
f(x,y)=sin(1.3*x)*cos(.9*y)+cos(.8*x)*sin(1.9*y)+cos(y*.2*x)
set size square
set xrange [-5:5]
set yrange [-5:5]
set contour base
set cntrparam level incremental -3, 0.5, 3
set palette rgbformulae 33,13,10
set pm3d map
set isosample 250, 250
unset key
set lmargin at screen 0.1;
set rmargin at screen 0.95;
set bmargin at screen 0.2;
set tmargin at screen 0.95;
splot f(x,y) with pm3d
Run Code Online (Sandbox Code Playgroud)

这是相应的情节:

在此输入图像描述

情节周围有白色边缘.如何通过编辑gnuplot代码来消除这些白色边距?

pdf gnuplot margin

3
推荐指数
1
解决办法
8063
查看次数

在Gnuplot中的数据曲线下面填写几个部分

我有一组点"数据"定义了一条曲线,我希望用贝塞尔曲线绘制.所以我想在某些x值对之间填充该曲线下面的区域.如果我只有一对x值,那并不困难,因为我定义了一组新数据并用fillcu绘制它.例:

我想做什么的例子

问题是我想在同一个情节中多次这样做.

编辑:最小的工作示例:

#!/usr/bin/gnuplot
set terminal wxt enhanced font 'Verdana,12'

set style fill transparent solid 0.35 noborder
plot 'data' using 1:2 smooth sbezier with lines ls 1
pause -1
Run Code Online (Sandbox Code Playgroud)

"数据"的结构是:

x_point y_point
Run Code Online (Sandbox Code Playgroud)

而且我意识到我的问题是,实际上我甚至不能填充一条曲线,它似乎被填充,因为那里的斜率几乎是恒定的.

gnuplot fill curves

3
推荐指数
1
解决办法
7101
查看次数

如何更改箭头的颜色

看来此命令无法更改箭头的颜色

set arrow from 22,1590 to 523,1090 lw 3   back  lc rgb "blue" filled
Run Code Online (Sandbox Code Playgroud)

但是我明白了

duplicated arguments in style specification
Run Code Online (Sandbox Code Playgroud)

它指向的开始filled

为什么?

gnuplot

3
推荐指数
1
解决办法
3393
查看次数

如何在gnuplot中处理的任何时间获取特定行中特定列的值?

我得到了这样的格式的数据文件:

# begin
16 1
15 2
14 3
13 4
12 5
11 6
Run Code Online (Sandbox Code Playgroud)

现在,我想使用gnuplot在点之间画一条线:

(1, (16/16))  (2, (16/15))  (3, (16/14)) ...  (6, (16/11)) 
Run Code Online (Sandbox Code Playgroud)

如您所见,x轴的范围是[1:6],Y轴对应于从第一列的第一行中的数字(即本例中的16)获得的值除以在第一行中的数字第一列。

问题是我不知道如何在第一行(16)的第一列中获取数字的值,因此我可以执行以下操作

plot "datafile" using 2:(16/$1) with linespoints
Run Code Online (Sandbox Code Playgroud)

我已经做了很多关于如何实现这一目标的搜索,但是没有运气。gnuplot似乎没有提供一些灵活的方法来允许任意数据选择。任何想法如何做到这一点?也许我只是陷入了一个不太常见的问题?

感谢您的帮助。

gnuplot

3
推荐指数
1
解决办法
1395
查看次数

使用具有多个y轴的gnuplot的直方图

我无法找到我面临的以下问题的解决方案.关于多轴的所有SO问题都谈论线图,但我正在寻找直方图.

y-range该酒吧是不同的,所以酒吧一组都没有真正看到,因为规模.这是数据:


Metric A B
M1 0.613416301 0.543734744 
M2 0.000195961 0.000100190

这是MWE:


reset
set term postscript eps size 5.5,4.5 enhanced color font 'Arial-Bold' 25
set out 'histplot.eps'
set key right 
set style histogram cluster gap 2 
set style data histograms
set style fill pattern 1.00 border
set y2range [0.0001:0.0002]
plot 'histplot.dat' using 2 ti col, '' u 3:xticlabels(1) ti col
quit

这是样本输出(没有看到M2上的一组条形): 比较指标

我更喜欢的是有一个第二个y轴(在图的右侧),其范围适合我的数据文件的第二行.这可能吗?任何帮助是极大的赞赏.

gnuplot histogram

3
推荐指数
1
解决办法
1807
查看次数

适合使用Gnuplot的时间序列

我是Gnuplot的忠实粉丝,现在我想将fit-function用于时间序列.

我的数据集如下:

1.000000 1.000000 0.999795 0.000000 0.000000 0.421927 0.654222 -25.127700 1.000000 1994-08-12
1.000000 2.000000 0.046723 -0.227587 -0.689491 0.328387 1.000000 0.000000 1.000000 1994-08-12 
2.000000 1.000000 0.945762 0.000000 0.000000 0.400038 0.582360 -8.624480 1.000000 1995-04-19 
2.000000 2.000000 0.060228 -0.056367 -0.680224 0.551019 1.000000 0.000000 1.000000 1995-04-19
3.000000 1.000000 1.016430 0.000000 0.000000 0.574478 0.489638 -3.286880 1.000000 1995-07-15
Run Code Online (Sandbox Code Playgroud)

我的拟合脚本:

set timefmt "%Y-%m-%d"
set xdata time
set format x "%Y-%m-%d"
f(x)=a+b*x
fit f(x) "model_fit.dat" u 10:($2==2?$4:1/0) via a,b
Run Code Online (Sandbox Code Playgroud)

所以我对时间数据进行了条件拟合.我的问题是,Gnuplot拟合函数不适用于时间数据.我在这里发现了一个类似的问题:使用Gnuplot进行时间序列的线性回归,但我不想使用其他软件.我也不知道如何将时间值更改为数字,然后再返回....

任何人都可以帮我解决这个问题与Gnuplot?

非常感谢!

gnuplot time-series curve-fitting linear-regression

3
推荐指数
1
解决办法
1117
查看次数

Gnuplot,在x轴上标准化

我有两个数据集,指的是以两种不同的方式执行的相同过程.相对于实时执行A速度比执行慢B,但这两个图表代表相同的现象.

我可以将两者一起绘制如下:

plot 'A' using 1:2, 'B' using 1:2
Run Code Online (Sandbox Code Playgroud)

但是我获得了两个具有不同X刻度A的图形:速度较慢,因此图形很多.

我可以通过执行以下操作来规范化图表:

plot 'A' using ($1 / maxA):2, 'B' using ($1 / maxB):2
Run Code Online (Sandbox Code Playgroud)

哪个适合我.唯一的问题是maxAmaxB变量.它们很容易确定(tail -n1 A | cut -f1tail -n1 B | cut -f1分别),但我想知道是否有自动化的方法.

提前感谢任何回答.

更新

在我应用了Wrzlprmft的优秀答案之后,我终于得到了以下模式,这非常方便:

max(Source) = system('tail -n ' . Source . '| cut -f1')

A = 'path/to/A'
maxA = max(A)
plot A using ($1 / maxA):2
Run Code Online (Sandbox Code Playgroud)

另一个可能的改进可能是包含函数的Column参数 …

gnuplot

3
推荐指数
1
解决办法
3489
查看次数