2

我需要能够定位刻度线,以便它们位于图表中的条形之间。这样可以读取在 0 到 14 之间有 2 个点,在 15 到 30 之间有 0 个点,依此类推,而不是在条形下方居中的抽动。有没有办法根据盒子宽度自动做到这一点? 图片 这是我当前的脚本尝试:

set xtics out nomirror
set ytics out nomirror
set tic scale 0
set style fill solid 1.00 border 0
set offset graph 0.1, 0.05, 0.1, 0.0
set boxwidth 15 *.9
set xtics offset -(15 *.9)/2
set term png
set output "graph.png"
plot 'data.dat' using 1:2:xtic(1) with boxes

这是.dat:

0       2
15      0
30      0
45      0
60      1
75      1
90      33

编辑 根据boxwidth,以下内容似乎始终如一:

set bwidth=15*.9
set boxwidth bwidth
set xtics out nomirror offset -bwidth/2 left

可能还有更好的方法。

4

1 回答 1

3

使用您的解决方案,您只需移动 tic 标签。我也会改变抽动。

这是我的解决方案:

set tics out nomirror
set style fill solid 1.00 noborder
set autoscale fix
set offset 5,5,5,0

# extract the first and second x-values
stats 'data.dat' using 1 every ::::1 nooutput
start = STATS_min
width = STATS_max - STATS_min

set boxwidth width *.9
set xtics start, width

set term pngcairo
set output "graph.png"

plot 'data.dat' using ($1+width/2.0):2 with boxes

第一个和第二个数据值是自动提取的(需要版本 >= 4.6.0)。这些值用于

  1. 设置框宽

  2. 设置 xtics(起始值和增量)

  3. 将数据点移动x-value 增量的一半。

参见例如Gnuplot: How to load and display single numeric value from data filestats以获取使用命令提取数据的另一个示例。除了与您一起加载数据,stats您当然也可以使用

start = 0
width = 15

4.6.3 的结果是:

在此处输入图像描述

于 2013-09-14T20:29:01.653 回答