Построение Gnuplot с изображением с использованием неквадратных блоков данных - PullRequest
1 голос
/ 14 февраля 2020

Я столкнулся со странной проблемой. Каждый раз, когда я пытаюсь построить «с изображением», используя не квадратный файл данных, я получаю очень неожиданные результаты. Нигде в любом из источников, которые я читал, не упоминалось о том, должен ли домен иметь одинаковые размеры.

Например, у меня есть файл с именем plate, который состоит из множества блоков данных, каждый из которых имеет 4 табуляции. разделенные столбцы. Второй и третий столбцы представляют координаты x и y соответственно. Первый блок данных в plate выглядит следующим образом:

0       0       0       293
0       0       0.1     293
.       .       .       .
.       .       .       .
.       .       .       .
0       5       4.9     293
0       5       5       293

Когда я plot "plate" index 0 using 2:3:4 with image, я получаю ожидаемый результат. Это работает для каждого индекса, и в результате получается квадратная карта тепла с 4-м столбцом в качестве значения тепла. Я хочу сделать то же самое с моим файлом с именем pipe, который использует тот же формат, за исключением разных диапазонов в столбцах 2 и 3.

0       5       2.2     293
0       5       2.3     293
.       .       .       .
.       .       .       .
.       .       .       .
0       10      2.9     293
0       10      3       293

В настоящее время я получаю следующее:

enter image description here

Выходные данные должны показывать solid горизонтальную полосу рядом с квадратом, но вместо этого она искажена.

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

Ниже приведен усеченный образец pipe для тестирования.

0       5       2.2     293
0       5       2.3     293
0       5       2.4     293
0       5       2.5     293
0       5       2.6     293
0       5       2.7     293
0       5       2.8     293
0       5       2.9     293
0       5       3       293
0       5.1     2.2     293
0       5.1     2.3     293
0       5.1     2.4     293
0       5.1     2.5     293
0       5.1     2.6     293
0       5.1     2.7     293
0       5.1     2.8     293
0       5.1     2.9     293
0       5.1     3       293

1 Ответ

2 голосов
/ 15 февраля 2020

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

В случае не квадратного В данных проблема, по-видимому, заключается в том, что столбец, который должен быть прочитан первым в операторе using, также должен быть столбцом, который повторяется первым.

Для данных, которые идут

1       1       1
1       2       2
1       3       3
2       1       4
2       2       5
2       3       6

Построение по using 1:2:3 with image приведет к параллелограмму, но построение по using 2:1:3 with image построит с правильными размерами. Тем не менее, в последнем случае желаемая ось X будет нанесена на Y и наоборот. Я также добавил последовательные контрольные точки в приведенные выше данные, чтобы увидеть, где нарисован каждый квадрат.

Ниже приведены результаты тестовых данных, перечисленных выше.

plot

plot

...