Заявление о обратной совместимости gnuplot 5 не соответствует действительности, так как теперь выводятся только некоторые метки из файла - PullRequest
0 голосов
/ 23 марта 2020

Я трачу часы на то, как добиться старого поведения из gnuplot 4.6 в 5.2

Но шансов нет! Поэтому я достаточно вдохновлен, чтобы задать свой вопрос; -D

Сначала gnuplot заявка на обратную совместимость !

Данные:

1  3  hm
2  5  oh
3  0  nice
4  2  krr

Первый столбец это x, второй y и третья метка x.

Мне нравится печатать все значения, но не все метки на оси x.

Как напечатать только каждую третью метку - мой вопрос .

Пока я не печатаю xti c, все можно сделать легко.

Но с ... проблемы начинаются.

В 4.6 я добился этого с помощью

file using 1:2 notitle ... 
'' using 1:((int(column(1))%3)==1?-1.:0/0):xtic(stringcolumn(3)) notitle

Всякий раз, когда остальное значение x равно единице, вычеркните точку из yrange, в моем случае -1 и нанесите метку x, иначе получите недопустимое значение, и ничего не вычерчивается.

Работает замечательно и легко модифицируется. Ожидайте, что у вас есть сотни очков. Спокойно.

КАК СДЕЛАТЬ ЭТО СЕЙЧАС В GNUPLOT 5.2 ???

Он отображает любое значение метки, не имеет значения, существует ли допустимая пара координат?

Рад за решение к этому.

Offtopi c: Мне действительно нравится программа gnuplot, это инструмент fantasti c, даже если вам иногда нужно найти хитрость. Но обратная переносимость ... ups;)

1 Ответ

1 голос
/ 23 марта 2020

Если я правильно понял вашу проблему, то есть показывать только каждые 3-е xti c с использованием xtic(), попробуйте это:

Код:

### only every 3rd xtic
reset session

$Data <<EOD
1   1.2  one
2   2.2  two
3   3.2  three
4   4.2  four
5   5.2  five
6   6.2  six
7   7.2  seven
8   8.2  eight
9   9.2  nine
EOD

plot $Data u 1:2 w p pt 7, \
     '' u 1:(NaN):xtic(int($1)%3==1?strcol(3):"") not
### end of code 

Результат:

enter image description here

Дополнение:

Для команды plot вы могли бы также используйте

plot $Data u 1:2 w p pt 7, \
     '' u 1:(NaN):xtic(3) every 3 not

Тогда он также будет отображать только каждую третью метку xti c, но в то же время только каждую третью метку xti c.

...