我有以下数据文件:
Time;Server;Hits
2011.05.05 12:00:01;Server1;12
2011.05.05 12:00:01;Server2;10
2011.05.05 12:00:02;Server1;2
2011.05.05 12:00:02;Server2;4
Run Code Online (Sandbox Code Playgroud)
所以,到目前为止,我已经提出了以下gnuplot脚本:
set datafile separator ";"
set autoscale
set xdata time
set timefmt "%Y.%m.%d %H:%M:%S"
set xtics rotate
set term png
set output "hits.png"
set style fill solid 0.5
plot "hits.log" using 1:3 title 'Hits'
Run Code Online (Sandbox Code Playgroud)
但是,那个数据来自同一图表上的两个服务器的数据作为一个数据系列.如何让gnuplot显示2个数据系列:每个服务器一个?
为了绘制直方图,我按照行动中的Gnuplot一书使用
binc(bin_width,x) = bin_width * ( int(x/bin_width) + 0.5 )
Run Code Online (Sandbox Code Playgroud)
并绘制我使用的情节
plot 'datafile' u (binc(bin_width,$1)) : (1.0/size_sample ) smooth frequency
Run Code Online (Sandbox Code Playgroud)
我已经明白,平滑的频率可以为每个bin创建一个频率计数,这可以用于绘制直方图
但是,我如何创建一个包含频率的变量,我想这样做,例如,将每个bin的频繁计数值导出到一个文件中.
我发现在gnuplot中,可以从一个文件中获取多个曲线/数据集:
splot "file.dat" using 1:2:3, splot "file.dat" using 1:4:5
Run Code Online (Sandbox Code Playgroud)
也可以将数据嵌入脚本中,如下所示:
splot "-" using 1:2:3
1 0 1
1 2 3
0.5 3 1.5
Run Code Online (Sandbox Code Playgroud)
但是,以下似乎不起作用:
splot "-" using 1:2:3, "-" using 1:4:5
1 0 1 4 4
1 2 3 3 4
0.5 3 1.5 2.5 -1
Run Code Online (Sandbox Code Playgroud)
这是故意的吗,是否存在解决方法?或者根本不可能吗?
在我用gnuplot制作的图表中,我绘制了一些灰色线条(set arrow命令),它代表了我实验的物理边界(即墙壁)
我想知道如何在图表的图例中添加此信息,因此它显示"墙"并且旁边有一条灰线.
我想创建一个包含这些信息的新系列,但我想知道是否可以明确添加它.
可以在gnuplot标题中设置当前日期吗?
就像是...
设置标题"执行日期= datetime()"
提前致谢.
亚历山大.
我正在执行以下gnuplot脚本:
set title "Efficiency scatter plot"
set xlabel "perf_1"
set ylabel "secondary report"
set log x
set log y
set xrange [0.1:40.0]
set yrange [0.1:40.0]
set terminal png medium
set output "./graph1.png"
set size square
set multiplot
set pointsize 0.3
set style line 6 pt 6
set datafile separator ","
set border 3
set xtics nomirror
set ytics nomirror
plot '/tmp/data.csv' using 3:1 with points pt 1 lt 3 lc var title "perf_20140113131309", \
'/tmp/data.csv' using 3:2 with points pt …Run Code Online (Sandbox Code Playgroud) 
我尝试在R中使用代码,但它们不起作用:
try_tori_1 = function(){
library(rgl)
xvec= yvec = seq(-pi,pi,by=0.1);
z <- outer(xvec,yvec,function(x,y) {sin(x)+.5*sin(x)*cos(y)} )
persp3d(z, theta = 30, phi = 30, expand = 0.5, col = "lightblue")
z <- outer(xvec,yvec,function(x,y) {cos(x)+.5*cos(x)*cos(y)} )
persp3d(z, theta = 30, phi = 30, expand = 0.5, col = "lightblue", add=T)
z <- outer(xvec,yvec,function(x,y) {.5*sin(y)} )
persp3d(z, theta = 30, phi = 30, expand = 0.5, col = "lightblue", add=T)
z <- outer(xvec,yvec,function(x,y) {1+cos(x)+.5*cos(x)*cos(y)} )
persp3d(z, theta = 30, phi …Run Code Online (Sandbox Code Playgroud) 在目录l250中我有几个文件.它们每个都以"l2_"开始,它是数值后的部分.我希望能够在last.sh文件中绘制大约300个文件的内容.我想知道我可以迭代文件的方式是什么,让它为$ 1,第二个值为$ 2.
我在想,因为文件在我可以使用的当前目录中.但后来我正在阅读awk和csv,我不知道该怎么做.我想了解什么是更好的方法来迭代大量的文件rater然后把它放在main.sh并运行它.
main.sh
sh last.sh l2_4 1
sh last.sh l2_5 2
sh last.sh l2_6 3
sh last.sh l2_7 4
.
.
.
Run Code Online (Sandbox Code Playgroud)
last.sh
gnuplot << EOF
set terminal png
set output "finished/$1.png"
set xlabel "Angs"
set ylabel "Angs"
set title "$1 | $2 fs "
set zrange [0: 0.00001]
set pm3d map
splot "$1"
EOF
Run Code Online (Sandbox Code Playgroud)
我在命令行中运行以下命令:
$sh main.sh
Run Code Online (Sandbox Code Playgroud) 我有以下情况:我使用绘制数据with image绘制强度级别的地图.它们已被装箱.现在我正在寻找一种绘制相同数据的方法,这样我就可以获得等高线图.我想要这样,这样我就可以将这个图用作另一个图的覆盖图,以便人们看到那里的强度等级.
我知道使用线条是可能的,但是我必须首先从数据创建线条,同时识别每个强度级别的边界.我希望有一个更直接的方法来实现这个与gnuplot.
要想象我想要实现的目标,请使用以下示例with image:

而对于这一点,我想获得的轮廓像显示在这里.
数据采用以下格式:
0 0 36
0 1 36
0 2 36
0 3 36
0 4 36
Run Code Online (Sandbox Code Playgroud)
每行包含:XCoord YCoord IntensityLevel
我想要实现的是从相同的数据中获得一个图,它给出了强度等级的轮廓线(这样我也可以决定使两个或更多强度等级的轮廓延伸).有没有办法在不生成新数据的情况下实现这一目标?
我试图用gnuplot绘制一些金融烛台图表.问题是周末没有数据,我不希望显示这些差距.图片和代码包含在下面.
set datafile separator ","
set xdata time
set timefmt"%Y-%m-%d"
set xrange ["2015-10-22":"2016-02-06"]
set yrange [*:*]
set format x
plot 'head.dat' using 1:2:4:3:5 notitle with candlesticks
Run Code Online (Sandbox Code Playgroud)