2013-12-02 3 views
2

Предположим, что у меня есть gnuplot-script для создания векторного графика, например, см. Ниже.Элегантно создайте опорный вектор для gnuplot vectorplot

s=0.2 
set terminal wxt persist 
set xrange [-1:1] 
set yrange [-1:1] 
set size ratio -1 
set samples 10 
set key outside 
plot '++' using 1:2:($2*s):(-$1*s) with vectors title "1 [m/s]" 

Как вы можете видеть, я масштабирую компоненты вектора, чтобы векторный график выглядел красиво. Теперь я хочу создать ссылочный вектор с заданной длиной, который я могу построить за пределами домена. Я ищу элегантное решение, которое не полагается на дополнительные линии для построения и которые, как правило, можно управлять так же удобно, как, например, set colorbox.

+0

Что не так с 'set arrow'? – Christoph

+0

@ Кристоф Почему я об этом не думал? Можете ли вы предложить разумный способ правильного масштабирования? – Bernhard

+0

Да, см. Мой ответ. – Christoph

ответ

1

Для этого можно использовать set arrow. Для того, чтобы получить правильное масштабирование, вы можете использовать для стрелы длиной 1

set arrow from graph 1.1,first -1 to graph 1.1, first 0 

Это использует first оси у для вертикальной длины. Если вы хотите иметь определение стрелки в одной точке, вы можете всегда использовать macros для их оценки:

set macros 
myarrow = 'set arrow from graph 1.1,first -1 to graph 1.1, first 0' 
... a lot of code ... 
@myarrow 
+0

Спасибо, с вашим кодом, я должен был бы установить его 'из графика 1.1, first -1 * s'. Сделать его более общим может быть проще, чем вы думаете, используя соответствующие переменные до масштабирования векторов. Еще раз спасибо. – Bernhard

Смежные вопросы