Gnuplot: переменные цвета (и ширина линий) для 2D-векторного графика - PullRequest
3 голосов
/ 06 мая 2011

Я пытаюсь создать двухмерный векторный график с переменной цветов (и шириной линий) в gnuplot (версия 4.4).Я посмотрел примеры для точек:

splot "vectors.dat" u 1:2:3:4:(rgb($5,$6,$7)) w points pt 7 pointsize var linecolor rgb variable

, где rgb - это функция, которая переводит цвет в дружественный формат gnuplot.

Изменение в направлении векторов казалось простым, но я наткнулся на несколько проблем.Мой пример кода (для окрашивания переменных):

splot "vectors.dat" u 1:2:(rgb($5,$6,$7)):3:4:(rgb($5,$6,$7)) with vectors head filled size screen 0.05,15,45 linetype 1 linewidth 2 linecolor rgb variable

Я также попытался поставить 0 в третьем столбце, так как gnuplots обозначение вектора является (x, y, z) (dx, dy,дг).Кроме того, я также попытался поменять столбцы и использовал случайные значения.Но что бы я ни делал, стрелки остаются черными.

Есть ли что-то очевидное, чего мне не хватает?

Заранее спасибо,

Араш

Ответы [ 2 ]

5 голосов
/ 08 мая 2011

Я бы поставил только одну цветовую спецификацию, например,

set xrange [0:10]
set yrange [0:10]
plot "test.dat" using 1:2:3:4:5 with vectors lw 3 lc rgb variable

, где test.dat содержит

1 1 2 0 0x000000
1 2 2 0 0xff0000
1 3 2 0 0xffff00
1 4 2 0 0x382288

enter image description here

То же самое можно сделать с помощью следующей встроенной функции rgb

rgb(r,g,b) = int(r)*65536 + int(g)*256 + int(b)
plot "test2.dat" using 1:2:3:4:(rgb($5,$6,$7)) with vectors lw 3 lc rgb variable

где test2.dat теперь читает

1 1 2 0 0 0 0
1 2 2 0 255 0 0
1 3 2 0 255 255 0
1 4 2 0 56 34 136
3 голосов
/ 19 июня 2013

Предположим, вы хотите раскрасить файл данных по векторной величине, вы также можете использовать опцию palette в сочетании с cbrange, например (пример Gnuplot 4.6)

set cbrange [0:1]
set palette rgbformulae 33,13,10
plot "data" using 1:2:3:4:(sqrt($3**2+$4**2)) with vectors linecolor palette z
...