Помимо решения @Friedrich, я хотел бы предложить более общее решение (хотя и более сложное).
Я предполагаю, что вы хотите нарисовать что-то еще, кроме стрелки. Если ваш график должен использовать палитру, я думаю, у вас "проблема", потому что я не уверен, поддерживает ли gnuplot более одной палитры в команде построения графика (см. Gnuplot 5.2 splot: несколько палитр pm3d в одной Заговор звонка ). Итак, вы должны реализовать палитру для своей стрелки самостоятельно (см., Например, Gnuplot: прозрачность точек данных при использовании палитры ). Если вы хотите сделать изогнутые стрелки с помощью Cubi, c проверка Безье ({ ссылка }).
Код:
### arrow with color gradient (besides other palette in plot)
reset session
array A[4] = [-4,-2,4,2] # arrow coordinates x0,y0,x1,y1
Ax(t) = A[1] + t*(A[3]-A[1])
Ay(t) = A[2] + t*(A[4]-A[2])
AColorStart = 0xff0000 # red
AColorEnd = 0x0000ff # blue
r(c) = (c & 0xff0000)>>16
g(c) = (c & 0x00ff00)>>8
b(c) = (c & 0x0000ff)
AColor(t) = ((int(r(AColorStart)*(1-t)+r(AColorEnd)*t))<<16) + \
((int(g(AColorStart)*(1-t)+g(AColorEnd)*t))<<8) + \
int(b(AColorStart)*(1-t)+b(AColorEnd)*t)
array AHead[1] # dummy array for plotting a single point, here: arrow head
set angle degrees
set style arrow 1 lw 3 lc rgb var size 0.5,15 fixed
set palette grey
plot '++' u 1:2:($1*$2) w image notitle, \
[0:0.99] '+' u (Ax($1)):(Ay($1)):(AColor($1)) w l lw 3 lc rgb var notitle,\
AHead u (Ax(0.99)):(Ay(0.99)):(Ax(1)-Ax(0.99)):(Ay(1)-Ay(0.99)):(AColor($1)) w vec as 1 notitle
### end of code
Результат: