Как сделать круг в gnuplot 4.0 - PullRequest
       52

Как сделать круг в gnuplot 4.0

0 голосов
/ 28 сентября 2019

Поскольку я должен использовать старую версию gnuplot 4.0, я обнаружил, что стиль круга недоступен.Может ли кто-нибудь предложить мне, как нарисовать круг с размером, отличным от данных, как это:

   x             y       size
0.000000    -18.595474   2.752
0.154186    -18.574680   0.752
0.308371    -18.513723   0.752
0.462557    -18.416941   3.753
0.616743    -18.291512   1.754
0.770928    -18.147374   2.755
0.925114    -17.996800   2.757
1.079300    -17.853565   0.759
1.233485    -17.731370   4.761
1.387671    -17.642539   0.763
1.541857    -17.605154   1.763

Я использую команду, как это, но она сообщила мне ошибку, что неопределенная переменная: переменная

plot "data0" u 1:2:3 with points pt 7 lt 1 ps variable title 'total'

Большое спасибо!

1 Ответ

0 голосов
/ 29 сентября 2019

Ой, я бы сказал, что это не так просто.Эта функция (с использованием переменного размера точек из данных) и множество других полезных функций (циклы, выражения в команде plot, массивы и т. Д.) Для создания «простого» обходного пути были введены в более поздних версиях gnuplot.

В gnuplot 5.2.6 это будет просто

plot 'Data.dat' u 1:2:3 w p ps var

Однако для gnuplot 4.0 вы можете создать странный обходной путь с

  1. фиксированным диапазоном xy
  2. multiplot
  3. reread подпрограмма
  4. подгонка данных для получения значения третьего столбца в переменную (довольно странно)
  5. , если вы также хотите, чтобыпоследняя точка данных, которую вы должны добавить в конец фиктивной строки данных

Протестировано с gnuplot 4.0 на Win 7 с терминалом Windows.Может быть, я упустил более простой способ, но с gnuplot 4.0 вы довольно ограничены.У вас должна быть веская причина, по которой вы не хотите или не можете обновиться до более новых версий.

Данные: tbCirclesV4.dat

#   x             y       size
0.000000    -18.595474   2.752
0.154186    -18.574680   0.752
0.308371    -18.513723   0.752
0.462557    -18.416941   3.753
0.616743    -18.291512   1.754
0.770928    -18.147374   2.755
0.925114    -17.996800   2.757
1.079300    -17.853565   0.759
1.233485    -17.731370   4.761
1.387671    -17.642539   0.763
1.541857    -17.605154   1.763
0.000000      0.000000   0.000

Основная программа: tbCirclesV4.plt

### mimic "plot 1:2:3 w p ps var" in gnuplot V4.0
reset
set term windows

set multiplot
    set xrange[-0.1:1.6]
    set yrange[-19:-17]
    i=0
    Max=11
    f(x) = a*x + b
    load 'tbCirclesV4Loop.plt'
unset multiplot
### end of code

Подпрограмма: tbCirclesV4Loop.plt

### sub-routine
a=1
b=1
fit [*:*][*:*] f(x) 'tbCirclesV4.dat' every ::i::i+1 u 0:3 via a,b
print "Size: ", i, b

# use pointsize b*2 to enlarge the circles a little
plot 'tbCirclesV4.dat' u 1:2 every ::i::i w lp pt 8 ps b*2 lt i+1 notitle
i=i+1

if (i<Max) reread
### end of sub-routine

Результат:

enter image description here

...