Невозможно построить первую точку, используя `set log x`,` set log y` под `gnuplot` - PullRequest
1 голос
/ 02 ноября 2011

Я пытаюсь построить два графика, используя разные столбцы из одного файла данных. Поскольку диапазон одного графика намного больше другого, я устанавливаю ось Y в логарифмическом масштабе. Поскольку область значений также очень мала для обоих графиков, я также устанавливаю ось х в логарифмическом масштабе.

У меня нет проблем с построением графиков, за исключением того, что gnuplot не отображает первые точки в файле данных (где x = 0).

Код, который я использую для построения графиков, выглядит так:

set xrange [1:2500]
set yrange [1:2000]
set log x
set log y
plot "datafile.txt" using 1:2 with lines, "datafile.txt" using 1:3 with lines

Обратите внимание, что, поскольку я использую логарифмическую шкалу для обеих осей, я не могу включить значение нуля в любом диапазоне.

Вот выдержка из файла данных, который я использую:

Table of Results: Range: {-50...50}
Dim #AvgP   #AvgNP
0   0   1743
1   0   564
2   0   914
3   0   1040
4   0   1072
5   0   1005
6   0   815
7   1   689
8   3   525
9   4   433
10  3   350
11  0   255
12  1   216
13  2   140
14  2   84
15  1   57
16  0   38
17  0   16
18  0   15
19  1   7
20  0   2
21  0   1
22  0   1
23  0   0
24  0   0
25  0   0
.   .   .
.   .   .
.   .   .

Файл, который выводится таким образом:

enter image description here

Обратите внимание, что первое значение второго графика не отображается.

1 Ответ

0 голосов
/ 02 ноября 2011

Как вы заметили, точка x = 0 не определена на логарифмической оси, поэтому ее пропуск - это то, чего вы должны ожидать.Если вы хотите принудительно включить эту точку, сдвиньте значения x , добавив 1 к каждому значению, и присвойте соответствующую метку оси, чтобы прояснить, что именно на ней наносится.

plot "datafile.txt" using ($1+1):2 with lines, "datafile.txt" using ($1+1):3 with lines

При этом вы должны увидеть недостающую точку на зеленой линии.Красная линия не изменится, так как значение y = 0 также не может быть нанесено на график.При желании вы также можете сместить значения y .

Вот как это выглядит: curve shifted to show first point.

...