Gnuplot использует xtic из данных, но строит графики только каждые 10-е - PullRequest
0 голосов
/ 15 мая 2018

У меня довольно плотный набор данных вдоль оси x, и я строю его, используя with boxes в качестве гистограммы. Моя таблица данных содержит записи для меток оси X. Метки X становятся слишком плотными. Как мне скажем распечатать только каждый десятый из них.

plot 'histo.raw' using 3:xtic(2) with boxes lc rgb 'orange'  title 'data'

Пример данных:

130 " +0.145 ->  +0.150"      0   0.00
131 " +0.150 ->  +0.155"      0   0.00
132 " +0.155 ->  +0.160"      0   0.00
133 " +0.160 ->  +0.165"      1   0.00
134 " +0.165 ->  +0.170"      2   0.00
135 " +0.170 ->  +0.175"      2   0.00
136 " +0.175 ->  +0.180"      4   0.00
137 " +0.180 ->  +0.185"      9   0.01
138 " +0.185 ->  +0.190"     31   0.03
139 " +0.190 ->  +0.195"     74   0.07
140 " +0.195 ->  +0.200"    114   0.11
141 " +0.200 ->  +0.205"    126   0.13
142 " +0.205 ->  +0.210"    114   0.11
143 " +0.210 ->  +0.215"    120   0.12
144 " +0.215 ->  +0.220"    181   0.18
145 " +0.220 ->  +0.225"    216   0.22
146 " +0.225 ->  +0.230"    367   0.37
147 " +0.230 ->  +0.235"    503   0.50
148 " +0.235 ->  +0.240"    648   0.65
149 " +0.240 ->  +0.245"    788   0.79
150 " +0.245 ->  +0.250"    960   0.96

Если я это сделаю, т.е.

set xtics 0,10 in rotate by 90 offset first +0.5,0 right
plot 'histo.raw' using 3 with boxes lc rgb 'orange'  title 'data'

Я получаю нужные разнесенные метки. Но мой текст метки из файла данных пропал и просто заменен на количество строк (что мне не нужно)

Спасибо за ваш отзыв.

1 Ответ

0 голосов
/ 15 мая 2018

Вы можете заменить using 3:xtic(2) на выражение, которое создает метку, только если номер строки $0 делится на 10:

plot 'histo.raw' \
 using 3:xtic((int($0) % 10)==0?stringcolumn(2):"") \
 with boxes lc rgb 'orange'  title 'data'

enter image description here

...