Как получить радиальный (полярный) график, используя график GNU? - PullRequest
10 голосов
/ 21 июля 2011

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

Здесь я использовал значения:

Theta Max-strain
0     3400
60    5300
120   4700
180   3800
240   4100
300   3100
360   3400

Как получить такой сюжет, используя gnu-plot?

Ответы [ 2 ]

27 голосов
/ 21 июля 2011

Я попытался воссоздать сюжет вашего вопроса, и вот что я придумал:

unset border
set polar
set angles degrees #set gnuplot on degrees instead of radians

set style line 10 lt 1 lc 0 lw 0.3 #redefine a new line style for the grid

set grid polar 60 #set the grid to be displayed every 60 degrees
set grid ls 10

set xrange [-6000:6000] #make gnuplot to go until 6000
set yrange [-6000:6000]

set xtics axis #disply the xtics on the axis instead of on the border
set ytics axis

set xtics scale 0 #"remove" the tics so that only the y tics are displayed
set xtics ("" 1000, "" 2000, "" 3000, "" 4000, "" 5000, "" 6000) #set the xtics only go from 0 to 6000 with increment of1000 but do not display anything. This has to be done otherwise the grid will not be displayed correctly.
set ytics 0, 1000, 6000 #make the ytics go from the center (0) to 6000 with incrment of 1000

set size square 

set key lmargin

set_label(x, text) = sprintf("set label '%s' at (6500*cos(%f)), (6500*sin(%f))     center", text, x, x) #this places a label on the outside

#here all labels are created
eval set_label(0, "0")
eval set_label(60, "60")
eval set_label(120, "120")
eval set_label(180, "180")
eval set_label(240, "240")
eval set_label(300, "300")


set style line 11 lt 1 lw 2 pt 2 ps 2 #set the line style for the plot

#and finally the plot
plot "-" u 1:2 t "Max strain" w lp ls 11
0 3400
60 5300
120 4700
180 3800
240 4100
300 3100
360 3400
e

Plot of the script above

Как видите, основное отличие состоит в том, что угол 0 находится не сверху, а справа (что математически правильно). Однако вы можете изменить это, изменив использование замедления на графике и функцию set_label.

Как видно из сценария, не все действительно четкое и блестящее. Если кто-то найдет улучшения, дайте мне знать!

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

5 голосов
/ 21 июля 2011

Вот руководство http://t16web.lanl.gov/Kawano/gnuplot/polar-e.html

 set polar
 set angles degrees

и получение кругов:

 set grid polar

Вот демоверсия: http://gnuplot.sourceforge.net/demo/polar.html

...