gnuplot - изменить масштаб оси

У меня есть следующие данные в cr.dat

0.03 0.0227352
0.02 0.0276084
0.01 0.0386684
0.009 0.0407197
0.008 0.0431688
0.007 0.04612
0.006 0.0497781
0.005 0.0545085
0.004 0.0608376
0.003 0.069918
0.002 0.0844434

И следующий сценарий сюжета

set xtics ( 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01, 0.02, 0.03)
plot "cr.dat" u 1:2 title "cr";

Который производит это изображениесюжет кр

Можно ли удалить большие пространства между 0,01, 0,02 и 0,03?

Я надеялся set xtics Команда построит данные тики равномерно вдоль оси х. Но это не так.

Обновить

Я попытался в нерегулярных gnuplot x-values предложенное решение с xticlabels но это производит странную ось X и Y.

Новый сюжетный скрипт

set xtics ( 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, 0.01, 0.02, 0.03)
plot "cr.dat" u xticlabels(1):2 title "cr";

закончить результатсюжет cr2

Я что-то не так понял?

2 ответа

Решение

Чтобы получить равномерно распределенные xtics, вы должны задать равномерно распределенные x-значения. Каждому из этих значений x можно присвоить собственную метку, взятую из файла данных, используя xticlabel функция. Обратите внимание, что эта функция всегда должна быть последней в using заявление.

Чтобы получить равномерно распределенные значения x, используйте номер строки, который содержится в псевдостолбце. 0, Итак, чтобы получить нужный сюжет, используйте

plot 'cr.dat' using 0:2:xticlabel(1) title "cr"

При этом номер строки используется как значение x, значения из второго столбца - как значение y, а значение в первом столбце - как метка xtic.

Если вы хотите, чтобы значения были отсортированы в порядке возрастания, у вас есть несколько вариантов:

  1. Сортировать файл данных.
  2. Сортировка файла данных на лету (отлично работает с помощью инструмента командной строки Unix sort:

    plot '< sort cr.dat' using 0:2:xticlabel(1)
    
  3. Используйте отрицательное значение номера строки, которое фактически дает вам обратную ось X:

    plot 'cr.dat' using (-$0):2:xticlabel(1)
    

Результат последней команды

Использование

set logscale x

преобразовать linear ось X к logarithm ось х, которая до некоторой степени нормализует промежутки.

Или измените размер участка, чтобы получить больше места.

set term . . . size 1920, 1080
Другие вопросы по тегам