gnuplot直方图:负值向下,而不是向上
我尝试用gnuplot生成一个直方图。我有正数和负数。正值位于图表顶部,负值位于图表底部。。 我想把底座换成上升和下降 例如,从0到-100 也许,这样做不是一种好的图形类型 我试过这个: gnuplot-e“设置终端png大小20000、1500;设置Y范围[-100:];设置标题“VU米0”;设置样式数据直方图;设置样式直方图聚集间距1;设置样式填充实心1号顺序;使用2:xticlabels(1)”打印“testVUmeter0.tsv”>out.pnggnuplot直方图:负值向下,而不是向上,gnuplot,histogram,Gnuplot,Histogram,我尝试用gnuplot生成一个直方图。我有正数和负数。正值位于图表顶部,负值位于图表底部。。 我想把底座换成上升和下降 例如,从0到-100 也许,这样做不是一种好的图形类型 我试过这个: gnuplot-e“设置终端png大小20000、1500;设置Y范围[-100:];设置标题“VU米0”;设置样式数据直方图;设置样式直方图聚集间距1;设置样式填充实心1号顺序;使用2:xticlabels(1)”打印“testVUmeter0.tsv”>out.png 感谢您,您可以在每个点计算一个新的y
感谢您,您可以在每个点计算一个新的y值,同时考虑一些需要的偏移量。例如,设置
bot=-20
以给出底部y值-20,您可以参考($2-bot)
将-5转换为0以上的-5-(-20)=
15`
set terminal png size 400,300
set output "out.png"
set style data histogram
set style histogram clustered gap 1
set style fill solid 1 noborder
bot=-20
set yrange [0:*]
set ytics ("-10" -10-bot, "0" 0-bot, "10" 10-bot, "20" 20-bot, "30" 30-bot)
plot "data" using (($2)-bot):xticlabels(1) notitle, \
"" using 0:($2+3-bot):(sprintf("%d",$2)) with labels notitle
数据为
1 33
2 44
3 22
4 -12
给出了绘图:
您可以在每个点计算一个新的y值,同时考虑一些需要的偏移量。例如,设置
bot=-20
以给出底部y值-20,您可以参考($2-bot)
将-5转换为0以上的-5-(-20)=
15`
set terminal png size 400,300
set output "out.png"
set style data histogram
set style histogram clustered gap 1
set style fill solid 1 noborder
bot=-20
set yrange [0:*]
set ytics ("-10" -10-bot, "0" 0-bot, "10" 10-bot, "20" 20-bot, "30" 30-bot)
plot "data" using (($2)-bot):xticlabels(1) notitle, \
"" using 0:($2+3-bot):(sprintf("%d",$2)) with labels notitle
数据为
1 33
2 44
3 22
4 -12
给出了绘图:
据我所知,绘制样式
柱状图
和带框
始终从y=0开始。
假设我正确理解了您的问题,您希望将此零级别转换为-100。
只要您不需要高级直方图样式,而只需要简单的框,一种可能的解决方案就是使用带有boxyError的打印样式。与@meuh的解决方案相比,在这里,gnuplot自动关注y-tics
代码:
### shift zero for boxes
reset session
$Data <<EOD
A -20
B -140
C 100
D -340
E +250
F 0
EOD
myOffset = -100
myWidth = 0.8
set style fill solid 1.0
set arrow 1 from graph 0, first myOffset to graph 1, first myOffset nohead ls -1
set style textbox opaque
plot $Data u 0:2:($0-myWidth/2.):($0+myWidth/2.):(myOffset):2:xtic(1) w boxxyerror notitle, \
'' u 0:2:2 w labels boxed notitle
### end of code
###为方框移位零
重置会话
$Data据我所知,绘制样式直方图和带框始终从y=0开始。
假设我正确理解了您的问题,您希望将此零级别转换为-100。
只要您不需要高级直方图样式,而只需要简单的框,一种可能的解决方案就是使用带有boxyError的打印样式。与@meuh的解决方案相比,在这里,gnuplot自动关注y-tics
代码:
### shift zero for boxes
reset session
$Data <<EOD
A -20
B -140
C 100
D -340
E +250
F 0
EOD
myOffset = -100
myWidth = 0.8
set style fill solid 1.0
set arrow 1 from graph 0, first myOffset to graph 1, first myOffset nohead ls -1
set style textbox opaque
plot $Data u 0:2:($0-myWidth/2.):($0+myWidth/2.):(myOffset):2:xtic(1) w boxxyerror notitle, \
'' u 0:2:2 w labels boxed notitle
### end of code
###为方框移位零
重置会话
我不太明白。如果有两个y值,比如5和-5,第一个直方图将从y=0变为y=5,第二个直方图将从y=0变为y=-5。你想看什么?@meuh举个例子,我有两个值3和-2。例如,我希望看到从-5开始的2个值。目前,基数是0。我不太明白。如果有两个y值,比如5和-5,第一个直方图将从y=0变为y=5,第二个直方图将从y=0变为y=-5。你想看什么?@meuh举个例子,我有两个值3和-2。例如,我希望看到从-5开始的2个值。目前,基数为0。