这是我正在使用的代码的最小工作示例:
#!/bin/bash
gnuplot << EOF
set term postscript portrait color enhanced
set encoding iso_8859_1
set output 'temp.ps'
set grid noxtics noytics noztics front
set size ratio 1
set multiplot
set lmargin 9; set bmargin 3; set rmargin 2; set tmargin 1
n=32 #number of intervals
max=13. #max value
min=-3.0 #min value
width=(max-min)/n #interval width
hist(x,width)=width*floor(x/width)+width/2.0
set boxwidth width
set style fill solid 0.25 noborder
plot "< awk '{if (3.544068>=\$1) {print \$0}}' /data_file" u (hist(\$2,width)):(1.0) smooth freq w boxes lc rgb "red" lt 1 lw 1.5 notitle
EOF
这让我明白了:
我需要的是histeps
改用,但是当我在上面的命令中更改boxes
时,我得到:histeps
plot
这里发生了什么??
这是data_file。谢谢!
编辑:如果histeps
遵循实际的外条限制而不是在两者之间插入值(就像这样boxes
做)是不可能的,那么我怎么能只画出用 制作的直方图的轮廓boxes
?
EDIT2:像往常一样,您的回答非常有用。虽然有一个小故障,这是我得到的输出,当我将两个图与命令结合起来时:
plot "< awk '{if (3.544068>=\$1) {print \$0}}' data_file" u (hist(\$2,width)):(1.0) smooth freq w boxes lc rgb "red" lt 1 lw 1.5 notitle, \
"<python pyscript.py data_file" u 1:2 w histeps lc rgb "red" lt 1 lw 1.5 notitle
似乎有些东西正在改变python
脚本的输出,我无法弄清楚它可能是什么。(在评论中修复)