Могу ли я построить 1D тепловую карту с помощью gnuplot?

#gnuplot

#gnuplot

Вопрос:

Я пытаюсь построить 1D тепловую карту, используя два столбца данных (значение x и значение y) в gnuplot. Линейная диаграмма, построенная с использованием моих данных, выглядит следующим образом:

Линейный график: введите описание изображения здесь

Однако после некоторых попыток я могу добиться только этого:

Что у меня есть: введите описание изображения здесь

И то, что я хочу получить, — это что-то вроде этого. (Только пример)

Чего я хочу:

введите описание изображения здесь

Сценарий gnuplot, который я использую, выглядит следующим образом:

 set view map set size ratio 0.2 unset ytics unset key splot 'test.dat' u 1:(1):2 palette  

Кто-нибудь может помочь, пожалуйста?

Ответ №1:

Я бы сделал это вот так:

 unset key set xrange noextend set offset 0,0,graph .05,graph .05 set palette cubehelix negative  plot 'foo.dat' using 0:3 with lines lc "black",   'foo.dat' using 0:(70):3 with lines lc palette lw 10  

введите описание изображения здесь

Комментарии:

1. Большое спасибо! Это на самом деле то, чего я хочу.

2. Я рад, что это решает вашу проблему. Пожалуйста, отметьте ответ как «принято», чтобы следующему человеку с аналогичной проблемой было легче найти его.

Ответ №2:

Итак, вы хотите использовать ось y в качестве поддельного измерения, чтобы увеличить ширину вашего участка второй линии? Конечно, это, например boxxyerror , возможно с явными ошибками ymin и ymax, которые заполняют yrange .

 set xr [-10:10] set yr [0:1] xspacing = 0.1 plot ' ' u 1:(0.5):($1-xspacing):($1 xspacing):(0):(1):(sin($1)) w boxxyerror lc palette  

В вашем случае замените sin(x) на соответствующий столбец ваших данных. С помощью специального файла ' ' ширина x не влияет, но в вашем случае вам, возможно, придется поиграть с правильным xspacing , чтобы избежать белых промежутков между точками.

введите описание изображения здесь

Комментарии:

1. Большое вам спасибо, этот метод хорошо работает, и я мог бы настроить xspacing для лучшего внешнего вида.

2. @ShanJ Рад слышать, что это было полезно! На SO «спасибо» выражается как принятие ответа и/или голосование.