Comment obtenir un tracé radial(polaire) en utilisant gnu plot?

je veux un tracé radial(polaire) en utilisant gnuplot (I. e en système de coordonnées circulaires (r,thêta).

Ici, j'ai utilisé les valeurs:

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

Comment obtenir un tel complot en utilisant gnu-plot?

10
demandé sur Thor 2011-07-21 10:32:06

2 réponses

j'ai essayé de recréer l'intrigue de votre question et c'est ce que j'ai trouvé:

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

comme vous pouvez le voir, la différence majeure est que l'angle 0 n'est pas au-dessus mais à droite (ce qui est mathématiquement correct). Vous pouvez changer cela cependant en modifiant la décélération d'utilisation dans le graphe et la fonction set_label.

comme vous pouvez le voir dans le script, tout n'est pas vraiment croustillant et brillant. Si quelqu'un trouve des améliorations s'il vous plaît laissez-moi savoir!

Un dernier bit de "conseils": Il n'est pas toujours raisonnable d'essayer de reproduire un tracé de certains outil avec gnuplot. Souvent, la force de gnuplot est de tracer les données de la façon la plus simple pour être facilement reproductible. Peut-être que vous pouvez lancer quelques lignes de script ci-dessus et toujours être heureux avec elle.

26
répondu Woltan 2011-07-21 10:36:16

Voici un manuel http://t16web.lanl.gov/Kawano/gnuplot/polar-e.html

 set polar
 set angles degrees

et pour obtenir des cercles:

 set grid polar

Voici une démo: http://gnuplot.sourceforge.net/demo/polar.html

5
répondu osgx 2011-07-21 06:34:24