#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 «спасибо» выражается как принятие ответа и/или голосование.