матричный блок данных gnuplot - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть файл ASCII с несколькими блоками данных, разделенными символами новой строки. Каждый блок данных имеет одинаковый размер. Я хотел бы построить каждый блок данных как отдельную тепловую карту. Я пробовал варианты следующей команды для построения первого блока:

plot data matrix every :::0::0 w image

Но gnuplot segfaults с этой командой. Если я удаляю все блоки данных, кроме одного, тогда я могу нанести этот отдельный блок на

plot data matrix w image

Как мне изменить эту первую команду, чтобы выбрать отдельный блок данных? В конце я хотел бы написать al oop, чтобы получить отдельные графики для каждого блока данных.

1 Ответ

1 голос
/ 24 апреля 2020

По моему мнению, существует некоторая путаница в отношении "блока данных", "набора данных", "данных" и т. Д. c ... Если ваши "блоки" разделены более чем одной пустой строкой, вы можете обратиться к ней с помощью index, отметьте help index. Если «блоки» разделены одной строкой, вы можете адресовать их через every, отметьте help every.

Код:

### plotting "datablocks"
reset session

$Data <<EOD
1  0
0  1


1  1
1  0


0  1
0  0


1  1
0  1
EOD

unset colorbox
set multiplot layout 2,2
    do for [i=0:3] {
        set title sprintf("Block %d",i)
        plot $Data index i matrix w image notitle
    }
unset multiplot
### end of code

Результат:

enter image description here

...