是否可以调整gnuplot方框图的高度?

是否可以调整gnuplot方框图的高度?,gnuplot,Gnuplot,下面是data.csv #x,data 0,20 1,30 2,40 3,50 下面的代码使用gnuplot来打印框打印并保存为png import subprocess proc = subprocess.Popen(['gnuplot','-p'], shell=True, stdin=subprocess.PIPE, encoding='ut

下面是data.csv

#x,data
0,20
1,30
2,40
3,50
下面的代码使用gnuplot来打印框打印并保存为png

import subprocess

proc = subprocess.Popen(['gnuplot','-p'], 
                        shell=True,
                        stdin=subprocess.PIPE,
                        encoding='utf8'
                        )

proc.communicate(
f"""
set terminal png size 400,300; set output 'plot.png';
set boxwidth 1
set style fill solid 1.0 
set xrange [-1:40]
set datafile separator comma 
plot 'data.csv' using 1:2 with boxes notitle

"""
)
输出png图像:

是否可以修改每个长方体的高度并将其设置为10

预期产出:


使用改编自伟大的黑根·维斯托夫的剧本

重置
#必须手动设置范围
设置X范围[-1:5]
设置Y范围[10:70]
设置数据文件分隔符逗号
设置样式矩形dashtype实体fc rgb“#0077ff”填充样式实体顺序
#矩形尺寸
高度=10
宽度=1
#---从数据文件读取位置
#将以下绘图的输出设置为表格,以实现其正确性
#当前终端中未显示
设置表'/dev/null'
#函数来创建正确的调用函数
加上矩形(x,y,hgt,wdt)=sprintf(\
'将对象rect从“%f”、“%f”设置为“%f”、“%f”'、x、y、x+wdt、y+hgt)
#初始化命令字符串
CMD=''
#进行虚拟绘图以读取位置数据
绘图'data.csv'u1:(CMD=CMD.add_矩形($1,$2,高度,宽度))
#执行绘图命令
评估(CMD)
#恢复终端
未设置的表
#虚拟空绘图以创建绘图实例
使用线条颜色rgb“#ffffff”notitle打印x
你可以得到这个图


据我所知,您无法避免手动设置打印范围,但由于您使用python脚本来调用打印,您可能可以将列的最小值和最大值传递给脚本,并自动进行设置。

顺便说一句,有带有boxxyerror的打印样式
,请选中
帮助boxyError
。 然而,从你的问题、草图和给定的数据来看,还不完全清楚你是否想要

  • 3盒;从一个数据点到下一个数据点(即高度=两个连续数据点之间的差值)
  • 4箱;从固定高度10的数据值开始
代码:(第二个选项)

###具有定义高度的打印框
重置会话

$Data您能稍微澄清一下您的问题吗?您想制作某个高度的最短框,还是希望框从其结束位置下方的某个高度开始?@MatiasAgelvis我已编辑了该问题,以包含预期的输出。输入数据将始终是数字的倍数。在这种情况下是10
### plot boxes with defined height
reset session

$Data <<EOD
#x,data
0,20
1,30
2,40
3,50
EOD

set xrange [-1:40]
set datafile separator comma
set style fill solid 1.0
plot $Data u 1:2:($1-0.5):($1+0.5):2:($2+10) w boxxyerror notitle

### end of code